C语言程序设计新编教程(第2版)答案第9章 文件 习题答案.docx
《C语言程序设计新编教程(第2版)答案第9章 文件 习题答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计新编教程(第2版)答案第9章 文件 习题答案.docx(5页珍藏版)》请在汇文网上搜索。
1、第9章 文件 习题答案1. 下面的程序有什么问题?int main (void) int *fp; int k; fp = fopen (gelatin); for (k = 0; k 30; k+) fputs (fp, Nanette eats gelatin ); fclose (gelatin); return 0; 答:因为程序有文件定义,所以应该有#include 。应该把fp声明为文件指针FILE *fp;函数fopen()需要一种模式:fopen(“gelatin”,”w”)或者a模式。Fputs函数中的参数的次序应该反过来,为了清楚,输出字符串应该具有一个换行符,因为fput
2、s并不会自动添加它。Fclose函数需要一个文件指针而不是文件名:fclose(fp)。以下为正确的版本#include int main (void) FILE *fp;int k; fp = fopen (gelatin, w); /* 用亍创建可冐文件 gelatin 但赋值给 一个文件指针 */ for (k = 0; k 30; k+) /* 循环输出 */ fputs (Nanette eats gelatin n, fp); fclose(fp); /* 关闭文件 */ return 0; 2. 编写一个程序,将任意数目的字符串写入文件。字符串由键盘输入。#include #in
3、clude #include #include #define BUFFER_SIZE 50char *read_string(char *buffer, int *pbuffer_size);int main(void) FILE *pFile = NULL; char *filename = d:myfile.txt; char answer = n; size_t str_length = 0; int buffer_size = BUFFER_SIZE; char *buffer = malloc(buffer_size); pFile = fopen(filename, w); if
4、(!pFile) printf(Error opening %s for writing. Program terminated., filename); exit(1); do /* 从键盘输入字符串 */ printf(Enter a string:n); read_string(buffer, &buffer_size); str_length = strlen(buffer); fwrite(&str_length, sizeof(size_t), 1, pFile); fwrite(buffer, str_length, 1, pFile); printf(Do you want t
5、o enter another (y or n)? ); scanf( %c, &answer); fflush(stdin); while(tolower(answer) = y); fclose(pFile); printf(nFile write completen); if(buffer) free(buffer); return 0; /* 从键盘读取字符串 */* 如果字符串超过buffer文件大小 */* buffer文件自动增加 */char *read_string(char *buffer, int *pbuffer_size) char *temp = NULL; int
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载共享资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言程序设计新编教程第2版答案第9章 文件 习题答案 语言程序设计 新编 教程 答案 习题