使用getline()从文件中读取输入(带空格)到一个结构中
Using getline() to read input (with spaces) from file into a structure
我目前在一个c++数据结构类,我对c++非常陌生。这里我的目标是从文件中读取行并将它们存储到一个结构中。这些线条包含了一本书的元素。我的问题是有些行有空格,我不确定如何正确地将它们读入结构中。我似乎不能正确地使用getline()
来读取结构的每个元素的行。如果我按原样运行它,我得到消息error: expected primary expression before 'infile'
。抱歉,如果这篇文章的格式不正确,这也是我的第一个堆栈溢出的帖子!任何帮助吗?
我的结构是这样的:
typedef struct book {
char title[100];
char author[100];
char publisher[100];
float price;
char isbn[100];
int pages;
int copies;
} Book;
我是这样把行读入结构的:
for (int i=0; i < currentIndex; i++) {
getline(ifstream infile, my_book[i].title);
getline(ifstream infile, my_book[i].author);
getline(ifstream infile, my_book[i].publisher);
getline(ifstream infile, my_book[i].price);
getline(ifstream infile, my_book[i].isbn);
getline(ifstream infile, my_book[i].pages);
getline(ifstream infile, my_book[i].copies);
currentIndex++;
}
文本文件将包含如下所列的图书信息:
Magician: Apprentice
Raymond E. Feist
Spectra (January 1, 1994)
5.02
0553564943
512
1
1 -首先在for循环外声明infile,然后再使用它。
2 - getline(inffile, book[i]....)不是inffile .getline(book[i]…、大小. .)第一个用于类string,第二个用于字符数组。
所以你的程序可能看起来像:
ifstream infile("data.txt", ios::in); // your data file
for (int i=0; i < currentIndex; i++)
{
infile.getline(my_book[i].title , 100, 'n');
infile.getline(my_book[i].author , 100, 'n');
infile.getline(my_book[i].publisher, 100, 'n');
infile >> my_book[i].price;
infile.getline(my_book[i].isbn , 100, 'n');
infile >> my_book[i].pages;
infile >> my_book[i].copies;
currentIndex++;
}
相关文章:
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 为什么将一个结构的引用设置为等于另一个结构只会更改一个数据成员?
- 如何将一个结构的字符数组复制到结构的另一个字符数组中?
- 如何将数据从一个结构链接到另一个结构
- 是否可以使用智能指针成员设置具有另一个结构的结构?
- std::transform 将一个结构数组复制到另一个结构数组
- 输入 ctrl + x 后如何再次 cin (cin<<x) 循环(cin 一个结构)
- 如何在级别上打印树,给定一个结构,该结构保存节点的值及其父节点的值,对于树中的每个节点
- 创建一个结构的关联数组,以创建一个缓冲区,供键快速访问
- 如何在另一个结构中初始化结构数组?
- 在另一个结构中声明内部结构会导致错误:结构使用无效
- 我想重置一个C++结构统计,我可以以某种方式使用 stat() 语法吗?
- C++可以输出一个结构的内存地址吗
- 通过 C++ 中的另一个结构成员访问结构
- C++ push_back() 一个结构体到一个向量中
- 难以从另一个结构中的函数返回结构
- 如何将向量添加到结构中以创建一个库存系统,在该系统中,我可以仅使用一个结构向系统添加多种不同的葡萄酒
- 如何制作一个结构程序,在其中可以存储无限量的数据,以便每次您想要时都可以将另一个产品添加到列表中?
- 将一个结构的值复制到另一个结构
- 是否可以在同一未创建的结构内创建一个结构