Я пробовал кучу методов, перечисленных здесь, но никто из них не работает. Он всегда ждет больше ввода.Как прекратить чтение из cin?
Я попытался while(std::getline(std::cin, line))
и метод ниже, ничего не похоже на работу:
#include <iostream>
#include <sstream>
using namespace std;
int main(){
long length = 1UL<<32;
int array[length];
// memset(array, 0, (length-1) * sizeof(int));
for(int i = 0; i < length; i++)
array[i] = 0;
string line;
int num;
while(!cin.eof()){
getline(cin,line);
stringstream ss(line);
ss >>num;
array[num]++;
}
for(int i = 0; i < length; i++)
if(array[i]){
cout << i << ": ";
cout << array[i] << endl;
}
}
Как вы прекращаете ввод? С помощью bash вы можете использовать ctrl + d или просто подключить файл к вашему процессу. –
Да, я использую ctrl d, когда делаю это вручную, или я перенаправляю файл. ни работает – ordinary
Я думаю, что вы можете установить определенную строку, такую как «quit» в качестве окончания ввода. – yanchong