当前位置:首页 » 编程语言 » c语言输出停不下来
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言输出停不下来

发布时间: 2022-12-20 14:45:21

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循环语句,所以执行完一个之后会执行另一个,这个没有什么问题的,等它运行到结束时是会结束的。