
正文
c语言有printf却没有输出,为什么c++printf没有输出
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
c语言求高手啊,为什么我加了个printf(“\n”);就打不出来了没加倒是对...
1、这个应该就不是加不加这条语句的问题,这个语句的含义就是多输出一个换行,不影响程序结果,只影响程序输出格式。
2、for(sb=1;sb=n;sb++) printf(%d ,a[sb]); printf(\n);抽出来写成 函数,你要注意函数的参数,你要保证进入时函数的参数值和退出时函数的参数值,确是你所要结果。sum 确能累加,n 和 a[] 的 大小/数值 确是当前大小/数值。书写正确,不会打不出数值。
3、printf并不会直接输出到屏幕,而是输出到缓冲区。只有当有刷新缓冲区的时候才会输出到屏幕。导致缓冲区刷新到情况有这些:1 强制刷新 fflush;2,放到缓冲区到内容中包含\n \r ;3,缓冲区已满;4,需要从缓冲区拿东西到时候,如执行scanf。
4、\n:C语言中的换行符是\n,就是输入完一行内容后,光标转到下一行的起始位置 。不加“\n”对输出的字符,字符串,数字等没有影响,但是输出矩阵的时候要加“\n”。
5、二维字符串数组a[n][m],其中a[n]的是行指针,表示的一行数据。所以在你图中代码char c[5][20];c[i]就表示一行字符串的首地址。同理s数组也是。所以当输入c和s数组,用c[i],s[i]做参数,不要加&,直接写scanf(%s%s,c[i],s[i])就可以了。
相关问答
Q1: C语言调试程序中有printf,显示屏上怎么没有显示的
1、如果后面并没有输出的值或者内容,显示出来就是空白的,当然就看不到了。
2、这通常是由于控制台窗口的默认大小或输出缓冲区的大小限制所致。控制台窗口有一个默认大小,它指定了控制台窗口显示多少行文本和多少列字符。如果你的输出格式化字符串过长,可能会超过控制台窗口的列宽度,从而导致部分内容无法显示,而被截断了。
3、你会发现,依然没有任何输出!(必须是Linux 环境,win中是有输出的,两者的实现不同,我们主要考虑Linux环境)你可能从来没听过,printf输出,居然还有条件,这是在《C prime Plus 第五版》中学习到的,当时的我也同样惊讶。
4、C语言程序中只要包含stdio.h头文件,就可以正常使用printf函数。但要正常实现输出,还必须要正确使用与输出量类型相符的格式符。所以,主所把有问题的C语言源程序粘贴出来,才好帮你分析出错的原因以及修改方案。
Q2: 我的这个C语言程序在完成输入之后为什么没有输出
忘记输出语句,输出语句错误,输入问题。忘记输出语句:忘记在程序中包含用于输出的语句,会导致输出空白。输出语句错误:使用了错误的输出语句,或者在错误的地方使用了输出语句。输入问题:在从文件或用户输入中读取数据,并尝试打印这些数据,但数据为空或不存在,那么也会得到空白输出。
程序没有写正确的输出语句。根据查询相关信息显示,c语言运行成功但没有输出是因为程序没有写正确的输出语句,或者程序没有执行到输出语句部分。可以检查一下程序的输出语句是否正确,例如使用printf函数输出内容时,是否正确使用了格式化字符串和转义字符。
代码不是你写的吧?因为代码没有问题,只是输入时要先输入个数n,再输入n个数,最后输入一个要找的数——这代码没有输入错误提示,所以输入错了就没有输出,等待下一次输入。而且,代码是多组循环,若要退出,得输入两次Ctrl+z键,否则啥也不显示等待下一轮输入。
首先指出你写的一处错误,fun函数没有返回值。你要么定义为void,既然定义成int,就要返回数据。
如果你输入的成绩一直是正数,那while循环是死循环了,所以你要输入一个结束循环的值,输一个负值就会有输出了。
Q3: c语言运行成功但没有输出
根据查询相关信息显示,c语言运行成功但没有输出是因为程序没有写正确的输出语句,或者程序没有执行到输出语句部分。可以检查一下程序的输出语句是否正确,例如使用printf函数输出内容时,是否正确使用了格式化字符串和转义字符。
忘记输出语句,输出语句错误,输入问题。忘记输出语句:忘记在程序中包含用于输出的语句,会导致输出空白。输出语句错误:使用了错误的输出语句,或者在错误的地方使用了输出语句。输入问题:在从文件或用户输入中读取数据,并尝试打印这些数据,但数据为空或不存在,那么也会得到空白输出。
原因就是你的输入函数写的有问题,你的格式控制列表是这样写的:a=%f,b=%f,c=%f\n,把后面的字符\n去掉就可以了,这样程序就能正常运行了。否则无论输入多少个\n(回车都不好使的),因为scanf函数输入的时候会自动忽略换行符,但是你的格式控制列表中却要求必须输入一个换行。
原因可能是输入格式不对,要输入“浮点数”并用 “逗号” 分隔输入三个数两个逗号后还要额外多加一回车才开始后面的流程,如果把 scanf(%f,%f,%f\n,&a,&b,&c);改为 scanf(%f%f%f,&a,&b,&c);就可以用空白符做分隔了 没有输出,不知道计算的结果那算法就没有意义了。
可能情况有:是不是程序运行出现错误,如:死循环;如果是死循环,程序将会进行持续运算,因此不会有退出结果。没有输出结果的函数,例如是不是没有printf函数?或者你可以把运行结果和代码发给我看看。
Q4: C语言这里哪出错了,对话框出不来,加printf调试也输出不了?
如果是visual C++里面的GUI程序,入口函数并不是main(),这个是windows框架帮你做掉了。
) 要学会用更简洁得代码来实现,你可以看看底下得例子 2)编程要学会调试,不会调试就等于不会编程。
调试一些短小的程序的时候,一般会用printf等输出一些有用信息,以粗略的定位Bug的位置!作为学习C语言甚至刚接触计算机开始,就认识的printf函数,可能我们已经非常的熟悉其使用了,虽然对其底层格式化输出的原理知之甚少,对整个执行流程似懂非懂。
如你所写的代码while以i100作为退出条件,但是在while循环内中红色框内代码改变了i的值,导致i一直等于1/-1,退不出循环,已经死循环了。应该把此代码删除,再定义一个 int flag = 1;while(i = 100){ s = s + flag/i;flag = -flag;i++;} 还有printf里的换行是\n不是 /n。
而你的循环条件也不对,你那样写,字符数组,浮点数组循环输入次数是不一样的,要分开循环。另外scanf输入默认是空格分隔,所以字符串和字符串之间要有空格,每个数字之间也要空格。
Q5: 请问我的C语言中printf为什么没有输出?
1、因为你没有按照c语言的输出的规则写,里面有双引号的可以拿单引号去代替,如果都写成双引号那是会出错的。
2、你可能从来没听过,printf输出,居然还有条件,这是在《C prime Plus 第五版》中学习到的,当时的我也同样惊讶。
3、Linux下C语言的printf是C标准I/O库中的格式化输出函数之一,将格式化数据写到标准输出stdout。
4、可能会越界,屏幕之所以会闪可能就是这个原因。当然,我觉得这个可能是写错了,c=a-b,可能你的意思应该是这样。最后,printf()函数写的也不对,如果要输出一个变量应该这样 “printf(/n/n结果是:%d/n,c);“。
5、C语言控制printf函数输出是通过格式化参数来实现的。printf函数调用的一般形式 printf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。但作为一个特例,不要求在使用 printf 函数之前必须包含stdio.h文件。
6、k+1);如果把 sum++;for(sb=1;sb=n;sb++) printf(%d ,a[sb]); printf(\n);抽出来写成 函数,你要注意函数的参数,你要保证进入时函数的参数值和退出时函数的参数值,确是你所要结果。sum 确能累加,n 和 a[] 的 大小/数值 确是当前大小/数值。书写正确,不会打不出数值。
关于c语言有printf却没有输出和为什么c++printf没有输出的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。








