C //例10.1 从键盘输入一些字符,逐个把它们送到磁盘上去,直到用户输入一个“#”为止。

C程序设计 (第四版) 谭浩强 例10.1

例10.1 从键盘输入一些字符,逐个把它们送到磁盘上去,直到用户输入一个"#"为止。

IDE工具:VS2010
Note: 使用不同的IDE工具可能有部分差异。
代码块
方法:使用指针,函数的模块化设计,动态分配内存
说明:这里要写入的文件名称为Test.txt,已经存在于该项目目录下。
c 复制代码
#include <stdio.h>
#include <stdlib.h>

void initialFile(FILE **file, char **word){
	*file = (FILE*)malloc(sizeof(FILE));
	*word = (char*)malloc(sizeof(char));
}

void inputFileName(FILE **file){
	char name[80];
	printf("Enter File Name: ");
	scanf("%s", name);
	*file = fopen(name, "r");
	if(*file == NULL){
		perror("Cannot open this file");
		system("pause");
		exit(0);
	}
	*file = fopen(name, "w+");
}

void fileInput(char *word, FILE **file){
	printf("Enter String: ");
	while((*word = getchar()) != '#'){
		fputc(*word, *file);
	}
}

int main(){
	FILE *file = NULL;
	char *word = NULL;

	initialFile(&file, &word);
	inputFileName(&file);
	fileInput(word, &file);

	fclose(file);
	putchar(10);

	system("pause");
	return 0;
}
运行结果如下:
相关推荐
明湖底的炼丹炉1 小时前
混合贪心算法求解地铁线路调度
算法·贪心算法
秋田君3 小时前
C语言中的数组:掌握数据的有序集合【一维数组,二维数组,字符串数组,直方图打印,计算全排列,字符数组常用函数】
c语言·嵌入式硬件
搁浅小泽3 小时前
C语言编译和编译预处理
c语言·开发语言
云边有个稻草人3 小时前
【C语言】自定义类型:联合和枚举
c语言·开发语言·算法
tonylua3 小时前
Python: 从 2.7 升级到 3,我比 vue 慢了一点点
开发语言·前端·javascript·vue.js·python
sunny-ll4 小时前
【C++】继承最全解析(什么是继承?继承有什么用?)
c语言·开发语言·数据结构·c++·算法·青少年编程
Tina聊编程4 小时前
2024C++信息素养大赛-算法创意实践挑战_复赛真题(广东省)题目+参考答案和详细解析
c++·算法·青少年编程·白名单竞赛
布说在见4 小时前
《共创与共享的双刃剑:开源项目的机遇与挑战》
开发语言·程序人生
是小满满满满吗4 小时前
类和对象(初)
数据结构·算法
西西弗Sisyphus5 小时前
支持向量机 (support vector machine,SVM)
算法·机器学习·支持向量机·svm