【发布时间】:2014-12-13 09:49:37
【问题描述】:
我想将输入文件中的字符串转换为字符数组来标记文件。这段代码可能还有其他问题,但现在,编译器说“将‘const char*’分配给‘char [100]’时的类型不兼容”。
string filename = "foo.txt";
ifstream data(filename.c_str());
string temp;
char str[100];
char* pch;
while (getline(data, temp)){
str = temp.c_str();
pch = strtok(str, " ,.");
while (pch != NULL){
cout << pch << endl; //Or something else, Haven't gotten around to this part yet.
pch = strtok (NULL, " ,.");
}
}
【问题讨论】:
-
你为什么不用
std::string? -
你如何设法使用带一个参数的strcpy函数?
-
@πάνταῥεῖ 因为我已经写过“使用命名空间 std;”在包括库之后。
-
@Mohit_Bhasi 抱歉,我实际上使用了 c_str()。这只是一个试验。
-
@FatimaTariq 我的意思不是省略命名空间限定符(顺便说一句,这是不鼓励的),我的意思是你为什么不使用它来分割成部分?
strtok()是一个危险的功能,不应使用。请参阅How to split a string in C++。