Для сканирования полной строки из файла в C++:Сканирования полной линии из внешнего файла в C++
, когда я использую inFile >> s;
где s является строкой и входной_файл внешним файла, он просто чтением первое первое слово из строки.
Полный код: (Я просто пытаюсь сканировать файл построчно и распечатать длину линий.)
#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;
}
Sample.txt
2
3
ADAM
BOB
JOHNSON
2
A AB C
DEF
Первое целое тест с последующим ни одним из будущих слов.
использование 'станд :: getline' вместо –
http://www.cplusplus.com/reference/fstream/ifstream/open/ – macroland
' входной_файл >> т; 'читает в' long long' Он не читается в хвостовом конце линии. Это приведет к большому горе позже. Две рекомендации: 1. Не смешивайте '>>' с 'std :: getline' и 2. используйте более надежные имена. Я не могу потрудиться, чтобы отлаживать суп из алфавита. – user4581301