C++使用分隔符将数据从txt存储到变量中
C++ storing data from txt into variables using delimiter
我正在进行一些调试,我意识到读取数据有问题。我正在尝试使用分隔符将从txt读取的数据存储到不同的变量中。
data.txt
homer:mtrjw:member:0
bryan:gw~fs:member:0
adam:fifr:member:0
admin12:firns67:admin:0
代码:
string user, pwd, role;
string lock;
ifstream inFile;
inFile.open("data.txt");
while(inFile.good()){
getline(inFile, user, ':');
getline(inFile, pwd, ':');
getline(inFile, role, ':');
getline(inFile, lock, ':');
cout << user << " " << pwd << " " << role << " " << lock << " " << endl;
/*
some if conditions...
}*/
}
输出:
homer mtrjw member 0
bryan
gw~fs member 0
adam fifr
member 0
admin12 firns67 admin
0
taken yfpjs member 0
brian
gwnfs member 1
miller rnqqjw
member 0
1
miller rnqqjw
正如你所看到的,只有第1行的输出被正确存储和显示,第2行以后的输出都是错误的。对此有什么解决方案吗?
我认为有两个问题:第一个是您要查找:四次。但当这是第四次时,你应该期待'\n',因为':'ryan:之后才会出现
string user, pwd, role;
string lock;
ifstream inFile;
inFile.open("data.txt");
while(inFile.good()){
getline(inFile, user, ':');
getline(inFile, pwd, ':');
getline(inFile, role, ':');
getline(inFile, lock, 'n');
cout << user << " " << pwd << " " << role << " " << lock << " " << endl;
/*
some if conditions...
}*/
}
第二个是您的"\n"在这种情况下成为锁的一部分。
更改行
getline(inFile, lock, ':');
至
getline(inFile, lock);
当您使用第一个表单时,它从第一行读取0
,从新行读取所有内容,直到第二行的第一个:
,并将其放入lock
中。
相关文章:
- 如何读取 TXT 文件并仅将 int 存储在 C 中
- 如何使用 C++ 将测验分数存储在 TXT 文件中
- C++-需要读取存储在文件(.txt)中的时间戳并正确检索
- 将.txt文件存储到 char* 2d 矢量C++中
- C++:从.txt文件中读取复数并存储到复数数组中
- 将数据从 TXT 文件存储到 strucutre 数组中
- 将每行的4个值从TXT文件存储到对象-C 中
- 将 Unicode 字符存储在.txt文件中的新行中
- 在TXT文档的一部分中查找信息并将其存储在变量中
- c++密码存储.txt文件+屏蔽输入
- 如何在Visual C 中读取具有字符(无间距)的TXT文件,并将其存储到2D字符阵列中
- C ++读取TXT文件并将其存储在矩阵字符中
- 有没有一种方法可以防止以前运行的值存储在txt文件中(防止覆盖)
- 如何将输入到txt文件中的数据存储到数组中
- 将 txt 值存储到向量的 <int>c++ 快速方法
- 我应该把从TXT文件中提取的数据存储在哪里,以便以后使用
- C++使用分隔符将数据从txt存储到变量中
- 在 C++ 中将.txt中的数据存储为列向量
- 从文件中提取行.txt然后将单词存储到单独的数组中 |C++
- 创建多个 txt 文件以在 c++ 中存储数据