这个题中的EOF应该怎么用。下面有我写的代码。
输入一个矩阵,要求用“#”为该矩阵加花边,最后一行后输出换行样例:输入:123456789
输出:######123##456##789######
数据说明:
矩阵长不超过25,高不超过25每行输入后都有换行提示:矩阵内不保证总是数字,保证没有空格。for(;;)循环的判断条件为“(某种输入方式)!=EOF”时,这是一种一直把输入内容全部读完的方式
#include <stdio.h>int main(){ char str; int i,j,m,l,n; for(i=0;scanf("%c",&str)!=EOF;i++) for(j=0;scanf("%c",&str)!=EOF;j++) { } for(n=0;n<=j+1;n++) printf("#"); printf("\n"); for(m=0;m<=j;m++) { printf("#"); for(l=0;l<=j;l++) printf("%c",&str); printf("#"); printf("\n"); } for(n=0;n<=j;n++) printf("#"); return 0;}EOF是当遇到换行符\n和'\0'的时候终止输入。这里我想通过两个for循环完成这个二维数组的赋值,但是当我运行后,在窗口中输入1 2 3 41 2 3 41 2 3 41 2 3 4
后,不能出现运行结果。要怎么通过这个EOF编写代码才能读入完整的二维数组??
#include <stdio.h>
int main()
{
char str;
int i,j,m,l,n;
for(i=0;scanf("%c",&str)!=EOF;i++)
for(j=0;scanf("%c",&str)!=EOF;j++)
{
}
for(n=0;n<=j+1;n++)
printf("#");
printf("\n");
for(m=0;m<=j;m++)
{
printf("#");
for(l=0;l<=j;l++)
printf("%c",&str);
printf("#");
printf("\n");
}
for(n=0;n<=j;n++)
printf("#");
return 0;
} EOF是当遇到换行符\n和'\0'的时候终止输入。
这里我想通过两个for循环完成这个二维数组的赋值,但是当我运行后,在窗口中输入
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
后,不能出现运行结果。要怎么通过这个EOF编写代码才能读入完整的二维数组?? 可以把eof放在while判断里,像这样
while(getChar()!=EOF) 接着楼上的回答我再补充一句,在输入的最后一行结束后(此时未换行)输入ENTER键,新起一行,再输入ctrl+z,再输入时ENTER键即可这个时候便可以终止EOF
页:
[1]