In ra số tiền có dấu phẩy "," ngăn cách

C++
Biến int Tien = 1000000;
làm thế nào để in nó ra 1,000,000 mọi người nhỉ.
có dấu phẩy ngăn cách sau ba số 0.
ai biết chỉ mình với ạ

Cho bạn con số một tỉmột tờ giấy. (bút nữa. :laughing:)

Vậy mình hỏi bạn vết 1,000,000,000 như thế nào. :slight_smile:

3 Likes

ý mình hỏi là nó có dấu phẩy “,” ngăn cách ấy

Tách 3 số 1, cho vào mảng rồi vòng lặp. Chắc vậy.

3 Likes

https://en.cppreference.com/w/cpp/locale/numpunct

nghiên cứu nha

https://en.cppreference.com/w/cpp/locale/numpunct/thousands_sep

có cho ví dụ rồi đó, chỉnh sửa 2 ký tự là ra

cái này có liên quan tới locale, numpunct là để chữa cháy thôi còn làm đúng thì tạo locale tương ứng (en_US hay vi_VN) rồi gắn vào cout.:V

5 Likes

Không hiểu sao bạn lại hiểu nhầm thành mình đang trêu ngươi bạn, nhưng mình đang gợi ý cho bạn cách làm đó. Đọc song đề bài thì mình cũng phải tưởng tượng như vậy.

Còn bạn cứ khăng khăng hỏi cách làm thì bạn có thể tham khảo code dưới.

#include <iostream>
 
void printWithComma(int a) {
	char s[100];
	int i = 0;
	while (a > 0) {
		s[i++] = a % 10 + 48;
		a /= 10;
		if (!((i + 1) % 4))
			s[i++] = ',';
	}
	if (!(i % 4))
		i--;
	for (int j = i - 1; j >= 0; j--)
		std::cout << s[j];
	std::cout << '\n';
}
 
int main() {
	printWithComma(1000000000);
	return 0;
}

Bạn có thể vô đây để test. :slight_smile:

P/s: Đây là vài dòng code mình code sau khi đọc đề bài. (nháp nữa :laughing:)

6 Likes

Sherly1001, tntxtnt, Flambo Me-mow
Cám ơn các bạn nhiều.

1 Like

OK, mình đã tìm thấy nó ở đây, nó đúng với mục đích của mình hơn.
http://www.cplusplus.com/articles/986AC542/
Kết quả:
image

xài cái code trên phải nhớ delete[] chuỗi trả về nữa :V

5 Likes

sao lại phải xóa, và xóa kiểu gì, đây là hàm dùng cho nhiều nơi mà bạn?

ko xóa thì chương trình xài hàm này 1 triệu lần RAM sẽ tăng lên khoảng 10MB chỉ khi tắt chương trình mới giảm được :V

đã là C++ sao ko xài std::string mà đi xài char* :V

6 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?