怎样用C语言输入一段文本,以什么作为输入终止的标志?又怎样才能按输入的格式输出该文本?

比如我要输入
"it was rainy yesterday but it's sunny today,right?"
"yes,it's our fortune"
...

scanf可从键盘输入字符,格式有%s(输入字符串), %d(输入整数), %c(输入字符)等,以回车作为结束标志;
printf与scanf对应,%s,%d,%c可输出相应的文本。
scanf("%s",str);可满足你要求,但每个scanf只能输入一行,要输入多行需要使用多个scanf

例如:
#include <stdio.h>
#include <string.h>
void main(void)
{
char str[100][100]; // 设定最多输入100行,每行最多100个字符
int i, n;
printf("请输入要输入的字符串行数:");
scanf("%d", n); //输入字符串行数
printf("请输入字符串:\n");
for (i=0; i<n; i++)
{

scanf("%s", str[i]); //输入字符串
}
printf("你输入了%d行字符,分别是:\n", n);

for (i=0; i<n; i++)

printf("%s\n", str[i]); //输出你刚才输入的字符串
}
运行结果:
请输入要输入的字符串行数:2(这里输完之后要回车)
请输入字符串:
it was rainy yesterday but it's sunny today,right?
yes,it's our fortune
你输入了2行字符,分别是:

it was rainy yesterday but it's sunny today,right?
yes,it's our fortune
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-10
你可以用getchar,然后通过结束符来终止输入:
int i;
char arr[1000],c;
while(c=getchar()&&i<999)
arr[i++]=c;
arr[i]='\0';
输出直接输出arr即可。
puts(arr);来自:求助得到的回答本回答被提问者和网友采纳
第1个回答  2012-12-10
用getchar
相似回答