gpt4 book ai didi

c++ - 如何从 C++ 中的 txt 文件输出。该文件有一两行

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

行如示例中所示:

583-4-153-15601-4  '\t' Time Warp Trio  '\t'  Scieszka Jon    '\t' 50  '\t'  50
583-0-133-15601-2 '\t' Djemte e rruges pal '\t' Ardit Zotaj '\t' 50 '\t' 50

所以每个字符串都用制表符分隔。它基本上包含一本书的信息。

ISBN-TITLE-AUTHOR-PRICE-NO. OF COPIES.<
//583-4-153-15601-4 '\t' Time Warp Trio '\t' Scieszka Jon '\t' 50 '\t' 50
//583-0-133-15601-2 '\t' Djemte e rruges pal '\t' Ardit Zotaj '\t' 50 '\t' 50

到目前为止我已经完成了这项工作,但它没有在 cmd 中给出正确的输出。

#include <iostream>
#include <string>
#include <fstream>
#include <sstream>
using namespace std;

int main()
{
ifstream fin;
fin.open("bookdata.txt");
string line;
string isbn, title, author;
int var1 = 0;
int var2 = 2;

while (!fin.eof())
{
getline(fin, isbn, '\t');
getline(fin, title, '\t');
getline(fin, author, '\t');
fin >> var1;
fin >> var2;
}

cout << isbn << title << author << endl;
fin.close();
cout << var1 << var2 << endl;
}

最佳答案

尝试这样的事情(未测试):

while (getline(fin, isbn, '\t') && getline(fin, title, '\t') &&
getline(fin, author, '\t') && fin >> var1 && fin >> var2 &&
fin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'))
{
cout << isbn << title << author << " " << var1 << " " << var2 << endl;
}

我使用了fin.ignore,这样我们就不会得到\n,它还在fin >> var2之后的流中>,作为下一个 isbn 的第一个字符。它也可以是 fin.ignore(1, '\n')...

你还必须在循环中打印这些变量,否则你只会打印文件中最后一行的信息。

我还注意到,您周围有 string line;。另一种方法,现在可以找到利用这个对象 here .

关于c++ - 如何从 C++ 中的 txt 文件输出。该文件有一两行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34709209/

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