微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 字符串的输入输出及相关函数

字符串的输入输出及相关函数

时间:08-14 来源:ZLG致远电子 点击:

7            if(ret_value){

8                   while(st[i] != '\n' && st[i] != '\0')

9                          i++;

10                 if(st[i] == '\n') 

11                        st[i] = '\0'; 

12                 else

13                        while(getchar() != '\0') 

14                               continue; 

15          } 

16          return ret_value; 

17   }

 

如果fgets()返回NULL,说明读到文件结尾或出现读取错误,s_gets()跳过了这个过程。其中的循环:

while(st[i] != '\n' && st[i] != '\0') 

       i++; 

 

遍历字符串,直到遇到换行符或空字符。如果先遇到换行符,下面的if语句将其替换成空字符;如果先遇到空字符,else部分便丢弃输入行的剩余字符,然后返回与fgets()相同的值。

 

尽管s_gets()用于替换fgets()已经有了很大的改进,但还是不完美。如果遇到不合适的输入时,它毫无反应。它丢弃多余的字符时,也不通知程序也不告知用户,请读者完善。

 

fputs()函数

 

由于fgets()将换行符放在字符串的末尾(假设输入行不溢出),通常要与fputs()配对使用,除非该函数不在字符串末尾添加换行符。

 

fputs()函数接受两个参数:第1个是字符串的地址,第2个是文件指针,指明要写入的文件,该函数根据传入地址找到的字符串写入指定的文件中。如果要显示在计算机显示器上,应使用标准输出stdout作为参数。和puts()不同的是,puts()在打印字符串时,不会在其末尾添加换行符。其调用示例如下:

fputs(buf, fp); 

 

其中,buf是字符串的地址,fp用于指定目标文件。注意,gets()丢弃输入中的换行符,但puts()在输出中添加换行符。而另一方面,fgets()保留了输入中的换行符,fputs()在输出中不会添加换行符。

 

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top