c语言中,输入时如何输入多行数据,没输入一行我用enter换行时就执行结果了,怎么搞?

每输入输入一行数据

可以用字符型数组
每输入一个字符判断一次
终止输入的字符换成别的
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-07-20
具体点,比如你要解决什么问题,你输入的数据类型是什么.追问

就是从多行随意的字母中挑选出带有固定字母的行,比如固定字母c,随意字母dfgsadgdsg

sdafagsdg
dsgsdgsggd
可我还没输完就出结果了,执行结果的enter和换行重复了

第2个回答  2011-07-20
这个程序中,lz可随意输入,直到输入quit结束。
#include <stdio.h>
#include <string.h>
int main()
{
char string[10000] = "\0";
char tmp[100] = "\0";
do {

strncat(string, tmp, strlen(tmp));
gets(tmp);
if(strcmp(string, "\0") != 0)
strcat(string, "\n");
} while(strcmp(tmp, "quit") != 0);
printf("Input string is :%s", string);
return 0;
}追问

怎么解决的

追答

原理是这样的。
1. c语言中默认回车是结束一个字符串输入的标志,这个是不能改的。所以就要考虑利用while循环,接收多个字符串,再把它们用函数strncat拼接到一起。
2. while循环结束的标志可自行设定,就在 } while(strcmp(tmp, "quit") != 0); 这一行。
3. 有个细节是
if(strcmp(string, "\0") != 0)
strcat(string, "\n");
因为没有办法读入回车,所以在每个字符串输入结束后,都自动加入一个回车("\n")

lz不懂可继续追问

本回答被提问者采纳
第3个回答  2011-07-20
#include <stdio.h>

int main()
{
char pt[1000];
int i=0;
while(i++<10) //够十次输入
{
gets(pt);
puts(pt);
}

return 0;
}追问

我要的是一次输入,一次出结果

追答

#include
#include
#define MAX 1000

int main()
{
char ptr[MAX][MAX] ;
int i=0;
while(i++<5)
gets(*(ptr+i));
i=0;
printf("输出如下:\n");
while(i++<5)
puts(*(ptr+i));
return 0;
}

这是一个输出5行的

第4个回答  2011-07-20
很多正解
相似回答