gpt4 book ai didi

c++ - 从文件中读取单词并在 C++ 中遇到某个单词时打印

转载 作者:行者123 更新时间:2023-11-30 03:48:01 25 4
gpt4 key购买 nike

我最近开始研究 C++,我想弄清楚如何从文件中读取数据。我有一个以以下内容开头的文件:

   1 !NTITLE
solvent mask generated by cctbx
64 0 64 72 0 72 96 0 96
3.91500E+01 4.46750E+01 6.10130E+01 7.26100E+01 7.17200E+01 7.53500E+01

(第一行上方空一行)

我正在尝试逐字阅读这个词并按如下方式打印单词 mask:

string myString;
ifstream xplorFile("mask.xplor");

if(!xplorFile){
cout << "error opening file" <<endl;
return -1;
}

while (!xplorFile.eof()) {
getline(xplorFile, myString, ' ');
if (myString == "mask") {
cout << myString << endl;
}
}

如预期的那样输出mask。但是,如果我尝试通过将 if 语句更改为

来打印 solvent
if (myString == "solvent") {
cout << myString << endl;
}

我没有得到任何输出。同样,如果我尝试 !NTITLE,我也不会得到任何输出。为什么比较不起作用?

最佳答案

改变

while (!xplorFile.eof()) {
getline(xplorFile, myString, ' ');

while (xplorFile >> mystring) {

我的猜测是,由于 solvent 位于行首且前面没有空格,因此带有分隔符 ' ' 的 getline 函数会生成 !NTITLE\n溶剂。使用 >> 运算符将解决这个问题,因为它对所有空格进行标记化。

关于c++ - 从文件中读取单词并在 C++ 中遇到某个单词时打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33404715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com