【发布时间】:2017-01-04 09:54:52
【问题描述】:
用于从 C++ 文件中扫描完整行:
当我使用inFile >> s; 时,其中 s 是一个字符串,inFile 是一个外部文件,它只是从该行读取第一个单词。
完整代码:(我只是想逐行扫描文件并打印行的长度。)
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
ifstream inFile;
inFile.open("sample.txt");
long long i,t,n,j,l;
inFile >> t;
for(i=1;i<=t;i++)
{
inFile >> n;
string s[n];
for(j=0;j<n;j++)
{
getline(inFile,s[j]);
l=s[j].length();
cout<<l<<"\n";
}
}
return 0;
}
示例.txt
2
3
ADAM
BOB
JOHNSON
2
A AB C
DEF
第一个整数是测试用例,后跟没有单词。
【问题讨论】:
-
改用
std::getline -
inFile >> t;读入long long它不会读入行尾。这将导致以后的悲伤。两条建议:1. 不要将>>与std::getline混用;2. 使用更好的可变名称。我懒得调试字母汤。
标签: c++ external fstream ifstream ofstream