第一种方法:
fgetc(fin)它读取一个打开的文件fin,读取一个字符,然后返回一个int值。
文件结束,fgetc将返回一个特殊标记EOF,它并不是一个char
标准输入读取一个字符,可以用getchar, 它等价于fgetc(stdin)
第二种方法:
是使用fgets(buf, maxn, fin)读取完整的一行,其中buf的声明为char buf[maxn]。
这个函数读取不超过maxn-1个字符,然后在末尾填上结束符"\0",因此不会出现越界的情况
和fgetc一样,fgets也有一个“标准输入版”gets,用法是gets(s),没有指明读取的最大字符数
(存在一个问题,gets不停地往s中存储内容,不管是否存储的下)
本题的特点是:可以边读边处理,而不需要吧输入字符串完整地记录下来,getchat是一个不错的选择。
表达式“a?b:c”:当a为真时值为b,否则为c
/*
Tex中的引号
在Tex中,左双引号是”"“,右双引号是””“。输入一篇包含双引号的文章,你的任务是把它转换成Tex的格式,
样例输入:
"To be or not to be, "quoth the Bard, "that is the question".
样例输出:
"To be or not to be, ”quoth the Bard, "that is the question".
*/
#include <stdio.h>
int main(){
int c, q = 1;
while((c = getchar() )!= EOF){
if(c == '"'){
printf("%s", q ? "``" : "''");
q = !q;
}else{
printf("%c", c);
}
}
return 0;
}