Я пытаюсь прочитать файл с помощью функции getline() и , используя мой входной файл, используя команду bash, но получаю нелогичный вывод.Входной файл трубопровода из bash и прочитайте его по строке с помощью getline (cin, line)
Это мой main.cpp код:
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main(int argc, const char * argv[]) {
string line;
while(getline(cin,line)){
cout<<line<<endl;
}
return 0;
}
Мой входной файл с именем input.txt выглядеть следующим образом
4 MF MF FM FF MF MM
MM FF
MF MF MF MF FF
моя команда Баш и работает результат
DENGs-MacBook-Pro:APS stevedeng$ g++ -o main main.cpp -std=c++11
DENGs-MacBook-Pro:APS stevedeng$ ./main < input.txt
MF MF MF MF FFMF MM
Что Я думал, что программа будет читать input.txt по строкам и печатать вывод точно так же, как формат, как входной файл ,
Может кто-нибудь объяснить, что здесь происходит, только с одной линией проводного вида вывода?
Как я могу достичь результата чтения строки, если единственный способ, которым я могу это сделать, - это , который связывает входной файл с bash вместо использования ifstream? Любая помощь будет оценена.
Работает должным образом для меня. –
Какова ваша платформа и компилятор C++. Похоже, что у вас есть проблемы с возвратом строки и возвратом каретки. –
Привет Я использую Mac и его TextEdit, когда я меняю содержимое входного файла, некоторое время он печатает несколько строк, но не все, и иногда он печатает самую длинную строку, и я не знаю почему. –