我必须读取一个名为text.txt的外部文件。该文件可能包含很多数据(并且def> 83个字符),我想忽略空格。然后,我需要获取文件中字符的总数(不包括空格)。我必须使用strlen。我收到一个转换类型错误,这很令人困惑,因为我认为strlen返回一个int。错误发生在strlen(inputString)上,更具体地说是在(inputString)上。
int main(){
fstream inFile;
string inputString;
inFile.open("text.txt", ios::in);
if (inFile) {
getline(inFile, inputString, ' ');
while (inFile)
{
int tempStringLength = strlen(inputString);
int total = 0;
total += tempStringLength;
}
}
else
cerr << "Unable to open file text.txt";
exit(1);
return 0;
}
我希望总数为文件中字符总数。
答案 0 :(得分:0)
strlen
函数返回一个size_t
结果,该结果通常等同于您平台上的unsigned int
。
此外,我还没有尝试您的代码,但是它看起来像一个无限循环。您可能需要像下面这样重新排列它:
int main() {
fstream inFile;
string inputString;
inFile.open("text.txt", ios::in);
unsigned int total = 0;
if (inFile) {
while (inFile)
{
getline(inFile, inputString, ' ');
unsigned int tempStringLength =inputString.length();
total += tempStringLength;
//Or maybe combine the two previous statements into:
//total += inputString.length();
}
}
else
cerr << "Unable to open file text.txt";
exit(1);
return 0;
}
P.S .:此外,strlen
期望输入char[]
。我已将其更改为string.length()
。