⑴ c语言...读取文本文件并打印出来...为什么停不下来
#include "stdio.h"
int main()
{
FILE *fp;
char ch;
fp=fopen("c:\\aaa.txt","rt");
while(ch!=EOF) //判断从文件读入的字符是否是文件结束.
{
ch=fgetc(fp);
printf("%c",ch);
}
fclose(fp);
printf("\n");
return 0;
}
⑵ C语言里,这个语句怎么终止 while((c=getchar())!=EOF) 根本停不下来啊
可以结束,输入ctrl+z回车。
方法是按住ctrl键不放,再按下z键盘,屏幕上会出现”^Z“的样子,然后回车。
如果还不行,可以尝试多输入几次ctrl+z回车。这是因为程序有问题,是输入缓冲问题,循环体中有其他输入语句,其后应该加fflush(stdin);来清除输入缓冲
⑶ c语言打印九九乘法表,程序停不下来
第二个for循环里 i++改成j++
⑷ 下面C语言为什么输入字母d会无限循环输出printf("请输入命令符:\n");语句,数字5以上就不会无限输出
图中框内的scanf语句是要输入一个整数,如果输入非数字这个函数就会失败,但程序不会退出。还有最大的问题它不会把你输入的非数字字符从输入缓冲区移除,所以下次执行scanf时还是字符输入失败。不仅仅是输入d只要是非数字都会无限循环输出printf。
有两种方法可以改,一是在scanf语句后面加入while(getchar() != ' ');每次输入完把输入缓冲期字符移除;
第二种判断scanf的返回值,if(scanf("%d",&num)!=1)
{
加入输入失败你想怎么处理
}
⑸ 在C语言中加入什么可以让输出结果停留
getch();
getch()函数是无回显的从控制台取得一个字符。以利用getch()函数让程序调试运行结束后等待编程者按下键盘才返回编辑界面,即任意键继续效果。
#include
#include
void main( )
{
printf("This is a C program. ");
getch() ;
}
(5)c语言输出停不下来扩展阅读:
getch();注意事项
1、所在头文件是conio.h。而不是stdio.h。
2、在使用之前要调用initscr(),结束时要调用endwin()。否则会出现不输入字符这个函数
也会返回的情况。
3、在不同平台,输入回车,getch()将返回不同数值,而getchar()统一返回10(即 )
windows平台下ENTER键会产生两个转义字符 ,因此getch返回13( )。
unix、 linux系统中ENTER键只产生 ,因此getch返回10( )。
MAC OS中ENTER键将产生 ,因此getch返回13( )。
⑹ c语言中的问题 怎样让他输出一个数就停下来
printf("%d\n",a*i);
在这句后面加上一个
getchar();
用于获取一个字符,你每按一下键盘输出一个数
⑺ C语言:输入\之类的话 for语句会一直往下循环输出,如何终止
输入之类的话 for语句会一直往下循环输出,是因为程序需要读入一个整数,但是输入的非法字符会一直停留在输入缓冲区中,要想终止,可以按下Ctrl+Break终止循环。
正面的程序已经帮你改好了:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{ int a, b,i;
srand((unsigned)time(NULL));//使用时间作为参数来生成随机数
a = rand() % 100 + 1;
printf("《C语言程序设计》翻转课堂—猜数游戏 欢迎来到猜数游戏 游戏说明:该程序将会生成1~100之间的整数,然后就由您负责猜数,同样也要输入1~100之间的整数,不许耍赖哦! ");//对游戏进行说明
for (i =1; i >0; i++)
{ fflush(stdin);
printf(" 请输入你想要猜的数字:");
scanf("%d", &b);
if (b == 0)
{ printf(" 感谢您的游玩,期待下次能再与你相遇^O^ ");
break;
}
if (b > 100 || b < 1)
{ printf(" 不许耍赖乱输数字,你到底想不想赢 ̄へ ̄ ");
fflush(stdin);
}
else
{ if (a == b)
printf(" 恭喜您猜对啦!!!o(^▽^)o 本次程序的随机数就是%d ", a);
else
printf(" 抱歉您没有猜对(╥╯^╰╥) 本次程序的随机数是%d ", a);
printf("本次游戏结束啦,喜欢的话可以继续^O^,如果不想玩了输入0就可以退出哦 ");
}
}
printf(" 编写成员:杨天晟、付京华");
return 0;
}
⑻ c语言这段代码为什么停不下来
个人理解,不知道对不对哈:
1、strlen(char *)返回的值是unsigned int类型;
2、c语言中不同类型数据的计算结果以顺次遇到的最高优先级为准,unsigned高于int,所以strlen("HELLO")-6的结果(-1)应为unsigned int类型,而(unsigned)-1=2^32-1=4294967295,也就是说第一段代码并不是死循环,会在输出4294967295个0后终止,这需要相当长的时间来完成,造成了你说的“停不下来”的错觉(也许几小时也许几天,我也不知道......)
3、你若想让代码1取得代码2的效果,可以强制转换一下数据类型,改成for (int i=0; i<(int)strlen("HELLO")-6; i++)
printf("0");
⑼ c语言for循环为什么无法终止
因为你有两个for循环语句,所以执行完一个之后会执行另一个,这个没有什么问题的,等它运行到结束时是会结束的。