单字符I/O: getchar()和putchar()
/*echo.c -- 重复输入*/
#include "stdio.h"
int main(){
char ch;
while((ch = getchar()) != '#'){
putchar(ch);
}
return 0;
}
其中#
就是结束键盘输入
/*echo_eof.c -- 重复输入直到文件结尾*/
#include "stdio.h"
int main(){
int ch;
while ((ch = getchar()) != EOF){
putchar(ch);
}
return 0;
}
- 不用定义EOF,因为在
stdio.h
中用#define
定义和预处理过了
重定向
echo_eof < words #linux
/*file_eof.c -- 打开一个文件并显示该文件*/
#include "stdio.h"
#include "stdlib.h" //为了使用 exit()
int main(){
int ch;
FILE * fp;
char fname[50];//存储文件名
printf("输入文件名:");
scanf("%s",&fname);
fp = fopen(fname, "r"); //打开待读取文件
if(fp == NULL){//如果失败
printf("文件不存在");
exit(1); //退出程序
}
while((ch = getc(fp)) != EOF){
putchar(ch);
}
fclose(fp); //关闭文件
return 0;
}
输入验证
/*inputCheck.c -- 输入验证*/
#include "stdio.h"
int main(){
int a;
scanf("%d",&a);//输入第一个数
while (a>=0){ //不在范围内时,执行循环
scanf("%d",&a);//获取下一个值
}
return 0;
}
switch和while循环
/*whileAndSwitch.c -- 循环和多重判断结合使用*/
#include "stdio.h"
int main(){
char ch;
while((ch = getchar()) != 'q'){
switch(ch){
case 'A': putchar("this is A");break;
case 'B': putchar("this is B");break;
default: putchar("auther one");break;
}
}
return 0;
}
putchar(getchar()) : 是输出空格再输入