c中如何读入多行字符串

已知行数为n行啊

简单,用fgets+循环就可以了。 一般不要用scanf,因为使用不好就不安全; 也尽量不要用gets, 具体参看C-FAQ 7.1。
例子如下:
#include <stdio.h>
#include <string.h>

#define BUFF_SIZE 128

int main(int argc, char **argv)
{
int N = 3;
char buffer[N][BUFF_SIZE];
char *p;
int i;

printf("Total input %d times.\n",N);
for (i = 0; i < N; i++)
{
printf("%d: ", i);
fgets(buffer[i], BUFF_SIZE, stdin);
if((p = strchr(buffer[i], '\n')) != NULL)
*p = '\0';
}

printf("\nOutput:\n");
for (i=0; i<N;i++)
printf("%s\n", buffer[i]);
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-06
写个循环读N次就行了
第2个回答  2012-11-06
int n;
char str[1001];
scanf("%d",&n);
while(n--)
{
gets(str);
}
相似回答