【发布时间】:2022-01-07 11:53:08
【问题描述】:
我需要输入n,一个整数,这是我之后需要输入的句子数,用enter分隔,每个句子都换行。
然后我需要输出单词最多的句子。
当我运行以下程序时,我只能读取 n 然后程序终止。
编辑 1:
我在cin >> n 之后放了一个cin.ignore(),它解决了这个问题,但是现在当我输出text2 时,它只显示它应该显示的句子的第一个单词。
编辑 2:
我在拆分句子之前将text 复制到aux,然后在if() 中我将aux 复制到text2。
#include <iostream>
#include <cstring>
#include <fstream>
using namespace std;
//ifstream fin("X.TXT");
/**
ifstream gin("Y.TXT");
**/
//ofstream fout("BAC.TXT");
int main()
{
int n, i, cnt1=0, cnt2=0;
char text[256], text2[256]="";
char *p;
cin >> n;
cin.ignore;
for(i=0; i<n; i++)
{
cnt1 = 0;
cin.get(text, 256);
p = strtok(text, " ");
while(p != NULL)
{
cnt1++;
p = strtok(NULL, " ");
}
if(cnt1 > cnt2)
{
cnt2 = cnt1;
strcpy(text2, text);
}
}
cout << text2;
return 0;
}
【问题讨论】:
-
如果你想通了,你应该在下面发布一个“答案”,然后点击它旁边的复选标记。这会自动将您的问题标记为已解决,无需在标题中添加任何内容。