01/10/2018, 08:18

Code bị lỗi "'char *itoa(int,char *,int)' : cannot convert argument 2 from 'std::string' to 'char *'" khi biên dịch

Mọi người giúp em sửa lỗi với ạ, em cho chạy thì nó hiện lên lỗi này: ‘char *itoa(int,char *,int)’ : cannot convert argument 2 from ‘std::string’ to ‘char *’

Đây là code của e ạ:

#include <stdio.h>
#include <cmath>
#include <stdlib.h>
#include <string>

using namespace std;

int main()
{
	int sotien;
	int i;
	int x;
	cout << "Nhap so tien: ";
	cin >> sotien;
	string menhgia;
	itoa(sotien, menhgia, 10);

	if (sotien < 1000)
		cout << "
Khong can xu ly.";
	else
	{
		(int) x = log(sotien);
		for (i = 3; i <= x; i = i + 3)
		{
			menhgia.insert(i, ",");
		}
		cout << "
So tien sau khi xu ly: " << menhgia;
	}
	system("pause");
	return 0;
}
Tran Xuan Son viết 10:28 ngày 01/10/2018

Std::string là class còn nó yêu cầu là con trỏ char vì thế nên lấy con trỏ char từ thực thể string bằng hàm c_str() hình như hàm đó
menhgia.c_str()

Hoang Kien viết 10:33 ngày 01/10/2018

Bạn có thể dùng menhgia.c_str() nếu ko dc nữa thì ép kiểu cho nó thành char *. (char *)menhgia.c_str()

Phong Triệu viết 10:20 ngày 01/10/2018

Cũng ko được bạn ạ. Có cách nào khác ko? Tiện thể cho mình hỏi luôn cách chuyển dạng từ int sang string với.

Phong Triệu viết 10:19 ngày 01/10/2018

là sao bạn, bạn nói rõ hơn đc ko?

Bài liên quan
0