如何解决:输入输出-c语言中' ',与' '的区别?

问题描述

c语言中' n',与' '的区别?

今天没事写了段代码。
#include
main()
{
int c;
while(c=getchar())!='n'
putchar(c);
}
这里只能输入输出一次,就退出循环了。
而我这样写
将while(c=getchar())!='n'改为while(c=getchar())!=''
这样就可以多次循环输入输出了而我又将上面的改为while(c=getchar())!=EOF
则不能输出了。
请问这几个是为什么?
谢谢!

解决方案

首位是n,每次结束输入都会按Enter,因此循环也就执行一次;而是字符串的结束符,而又无法从键盘输入,因此可以无限输入输出;
EOF,没有实验过用它作输入结束标志,EOF是ctrl+z,输入字符之后按Ctrl+z,会产生这个值。
其次,你的循环应该写错了,while((c=getchar())!='n'),再实验一次试试

#*#

是字符串结束符,即零,从键上是无法输入的
EOF,是 End Of File 的缩写,其值好像是 -1,你也是无法从键上输入的。你所谓的不能输入,是什么情况,不太清楚。

#*#

http://blog.csdn.net/lichengyu/article/details/41621099

#*#

这个我知道,我想问为什么会出现上述情况。谢谢!

#*#

''永远不会执行到,因为你不会输入这个字符的,n是回车

#*#

感觉你是对那些概念不清楚,建议你去看看书

#*#

是字符串结束符,无法从键盘上进行输入,而n是回车

#*#

默认我们从键盘输入的数据流是字符流(控制信号是特殊的字符数据),而字符数据有其规范ASCII。我们用一些特殊的字符作为数据流的分割,比如这里的‘n’(ASCII0x10),‘’(0x00)。
‘n’(0x10)代表回车可以由键盘上回车键输入;
‘’(0x00)是空字符无法由键盘输入,我们从键盘数字区输入“0”字符对应ASCII是0x30,从键盘输入“空格”键对应的ASCII是0x20;
‘EOF’ASCII代码值的范围是0~255,不可能出现-1,因此可以用EOF作为文件结束标志,通过组合键“Ctrl+z”可以产生‘-1’这个值。~

#*#

你的while循环写错了吧,应该是这样while(c=getchar()!='n')

#*#

#include
int main(void)
{
int c;
while(c=getchar() != EOF)
putchar(c);
return 0;
}

时间: 2024-08-30 03:37:34

如何解决:输入输出-c语言中' ',与' '的区别?的相关文章

C++中关于[]静态数组和new分配的动态数组的区别分析_C 语言

本文以实例分析了C++语言中关于[]静态数组和new分配的动态数组的区别,可以帮助大家加深对C++语言数组的理解.具体区别如下: 一.对静态数组名进行sizeof运算时,结果是整个数组占用空间的大小: 因此可以用sizeof(数组名)/sizeof(*数组名)来获取数组的长度. int a[5]; 则sizeof(a)=20,sizeof(*a)=4.因为整个数组共占20字节,首个元素(int型)占4字节. int *a=new int[4];则sizeof(a)=sizeof(*a)=4,因为

C语言中字符的输入输出以及计算字符个数的方法详解_C 语言

C语言字符输入与输出 标准库提供的输入/输出模型非常简单.无论文本从何处输入,输出到何处,其输入/输出都是按照字符流的方式处理.文本流是由多行字符构成的字符序列,而每行字符则由 0 个或多个字符组成,行末是一个换行符.标准库负责使每个输入/输出流都能够遵守这一模型.使用标准库的 C 语言程序员不必关心在程序之外这些行是如何表示的. 标准库提供了一次读/写一个字符的函数,其中最简单的是 getchar 和 putchar 两个函数.每次调用时,getchar 函数从文本流中读入下一个输入字符,并将

c语言-C语言中函数调用出错问题的解决方法,主函数中的函数参数问题

问题描述 C语言中函数调用出错问题的解决方法,主函数中的函数参数问题 最后的主函数中的Locatei(&Q)一直提示参数不够,但我添加了指向pos的整型变量并赋值给i后仍不能成功,我现在不知道是调用错了还是那里的问题,求解答啊! include include include #define ERROR 0 #define OK 1 #define RL 200 typedef struct{ char *name[RL]; char *phonenum[RL]; char *add[RL];

jsp页面中表达式语言中的$符号不起作用的解决方法_JSP编程

今天myeclipse里部署了之前做的一个测试项目,发现jsp里的$符号tomcat启动后页面上显示出来了,百度搜了下别人也有类似的问题出现过.经提醒原来是web.xml配置的version设置的是2.5而我tomcat5启动的.是tomcat的版本低于web的版本,从而导致$符号不能正常使用. 后将tomcat5改用tomcat6.jdk采用1.6 启动spring2.5项目.$显示问题解决. 以下是网上摘录的详细说明: 在jsp页面中用表达式语言中的$符号,如${pageScope.titl

速度解决-c语言中整型和浮点数所能容纳的值精度

问题描述 c语言中整型和浮点数所能容纳的值精度 假如int和float类型都是32位长,你觉得那种类型所能容纳的值精度更大一些? 解决方案 float类型的范围大于int,float值精度更大

Java语言中字符的处理

山西省网络管理中心任军 ----摘要:本文主要讨论了Java语言中字符的特殊表达形式,尤其是中文信息的表达处理,阐述了字符处理的关键是要将十六位Unicode字符,转换为本地下层平台,也就是运行Java虚拟处理机的平台能够理解的字符形式. ----关键词:Java.字符.8位.16位.Unicode字符集 ----Java是一种编程语言.一个运行系统.一套开发工具和一个应用程序编程界面(API).Java建立在C++的熟悉.有用的特征之上,而取消了C++的复杂的.危险的和多余的元素.它是一个更安

C语言中如何判断int和long型等变量是否赋值

博主这段时间在写一些C程序的代码,由于以前对C不是了解很多,故遇到很多瓶颈,当然,其中也有很多 有趣的方法可以利用以解决这些难题,下面这个问题就是博主遇到的一个麻烦. 声明了 int ,long 型等局部变量,在利用一些方法给这些变量赋值之后,想判断这些变量是不是真的被赋初值了,怎么办? 当然,如果你不赋值给局部变量,这样会导致整个程序的崩溃,因为,它的内容被系统指向了垃圾内 存. 下面我们看一段代码: #include <stdio.h> #include <string.h>

不定参数在C语言中的应用实例

不定参数在C语言中的应用实例:不定参数当年做为C/C++语言一个特长被很多人推崇,但是实际上这种技术并没有应用很多.除了格式化输出之外,我实在没看到多少应用.主要原因是这种技术比较麻烦,副作用也比较多,而一般情况下重载函数也足以替换它.尽管如此,既然大家对它比较感兴趣,我就简单总结一下它的使用和需要注意的常见问题. 刚学C语言的时候,一般人都会首先接触printf函数.通过这个函数,你可以打印不定个数的变量到屏幕,如: printf("%d", 3): printf("%d,

感触C语言中的面向对象思想

经常听见别人说面向对象的程序设计,以前也有上过面向对象程序设计这门课.可是不幸的是,这些都是以C++,甚至VC++为基础的.而更加不幸的是,多年以来我一直是一个C的使用者.在学校的时候,我主要做的是硬件上的驱动层,和底层功能层. 在工作以后,又做的是手机上的软件开发,所有这些都是和C离不开的.虽然我不得不说,C++是一门很好的语言,但是它的编译速度,代码效率,编译后的代码大小都限制了它在嵌入式上的应用.(尽管现在的嵌入式CPU越来越快,内存容量变大,我觉得用C++也应该没有什么问题.这使我觉得似

Java语言入门教程(十六):Java语言中的接口

通过前面几篇文章的学习,初学者可以初步掌握Java语言中继承的概念和使 用方法,对抽象类的使用也有一定的理解.值得注意的是,Java中类与类的继承 是单继承,也就是一个子类最多同时可以继承一个父类.那么让我们看下面的例 子. 假设我们要开发一个游戏系统,而游戏系统中有三种飞行器:飞机.小鸟. 蜘蛛侠.这三种飞行器都需要实现起飞,飞行,降落的逻辑,但是实现方法各不 相同.那么这三个类应该有一个抽象类作为父类,规范共同行为. package com.csst.inter; public abstra