xcode — программа на C ++ не полностью читает огромные данные Зачем?

Я хочу решить конкурсную задачу по программированию (C ++ с XCode), которая имеет относительно большой ввод (300 строк). При копировании тестового ввода в консоль, он не читает все это.
Итак, я написал минималистичную тестовую программу для простого чтения в 300 строк:

#include <iostream>

using namespace std;

int main(int argc, const char * argv[])
{
ios_base::sync_with_stdio(false);

string xxx;
for(int i = 0; i < 300; i++)
cin >> xxx;
return 0;
}

Если я выполню его и скопирую 340 строк с «aaaaaaaaaa» в консоль, это не закончится. Если я остановлю его с помощью отладчика, он скажет, что я = 92. Если я продолжу, он выйдет.
Но когда я копирую кусочки по 50 строк в консоль, она немедленно завершает работу, как и должно быть …

Кто-нибудь может мне с этим помочь?

PS: я вставил ‘ios_base :: sync_with_stdio (false);’, потому что я прочитал, что это приведет к потере ввода.

1

Решение

Я хочу решить конкурсную задачу по программированию (C ++ с XCode), которая имеет относительно большой ввод (300 строк). При копировании тестового ввода в консоль, он не читает все это

Это возможно, если у вас более одного слова в строке, потому что cin >> xx будет читать слова, а не строки.

Вам нужно будет использовать метод getline на самом деле читать строки.

while (getline(cin, xxx));

Если я выполню его и скопирую 340 строк с «aaaaaaaaaa» в консоль, это не закончится. Если я остановлю это с помощью отладчика, он говорит, что я = 92.

Да, это точно такой же симптом. Даже если бы у вас было одно слово в строке, вы бы набрали только 300 строк, а не 340.

Вот весь код, который я написал бы для вашей справки:

#include <iostream>

using namespace std;

int main(int argc, const char * argv[])
{
ios_base::sync_with_stdio(false);

string xxx;
while (getline(cin, xxx))
cout << xxx << endl;
return 0;
}
2

Другие решения

cin >> string вводит слова, а не строки. Пытаться:

string xxx;

while (getline(cin, xxx)) {
;
}

ввести полную строку за раз в xxx,

0

Я не смог решить проблему с X-Code, но он работает с Qt. Поэтому я использую Qt сейчас.

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector