【发布时间】:2019-02-28 20:31:39
【问题描述】:
这里有点新,一直在尝试解决getline的问题。我发现错误的根源是由于 intext[18]。一旦我删除了数组,所有错误都会消失。问题是我拥有的文档有 19 行数据需要检索,因此我决定尝试将其全部放入数组中,而不是键入每个字符串。我对 c++ 很陌生,这是迄今为止我唯一一次碰壁。如果这个问题已经解决,我会提前道歉。我整天都在寻找没有解决。
#include "pch.h"
#include <iostream>
#include <iomanip>
#include <string>
#include <fstream>
#include <array>
using namespace std;
int main()
{
ifstream inFile;
string intext[18];
inFile.open("HW3_Data_W.txt");
while (inFile.is_open()) {
getline(inFile, intext);
cout << "Data from the file:" << endl;
cout << "Item 1: " << intext << endl;
break;
inFile.close();
}
}
【问题讨论】:
-
由于
break,您的循环总是一次结束。而如果你想使用一个数组,你需要指定,你想使用哪个索引(你有18个std::strings,你要使用哪个?),即cout << "Item 1: " << intext[0] << endl; -
string intext[18]使intext成为 18 个strings 的数组。在getline()中,应为string。要么解决intext[18]的一个元素,例如getline(inFile, intext[0])或者只是不要创建intext和数组:string intext;。为什么要intext成为一个数组? -
只想再添加一件事,你提到你有 19 个字符串,所以如果你要创建一个数组,那么声明 intext[19] 而不是 intext[18]。
标签: c++ arrays file-io getline