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;
}
运行结果如下:
相关推荐
lbb 小魔仙19 小时前
【Java】Spring Data JPA 详解:ORM 映射、查询方法与复杂 SQL 处理
java·开发语言·sql·spring cloud
序属秋秋秋19 小时前
《Linux系统编程之进程控制》【进程创建 + 进程终止】
linux·c语言·c++·操作系统·进程·进程创建·进程终止
fantasy_arch19 小时前
SVT-AV1 B帧决策和mini-GOP决策分析
算法·av1
声声codeGrandMaster19 小时前
逻辑回归-泰坦尼克号
算法·机器学习·逻辑回归
Fighting_p19 小时前
【预览word文档】使用插件 docx-preview 预览线上 word 文档
开发语言·c#·word
superman超哥19 小时前
Rust 发布 Crate 到 Crates.io:从本地到生态的完整旅程
开发语言·后端·rust·crate·crates.io
浪客川19 小时前
【百例RUST - 002】流程控制 基础语法练习题
开发语言·rust
一路往蓝-Anbo19 小时前
C语言从句柄到对象 (二) —— 极致的封装:不透明指针与 SDK 级设计
c语言·开发语言·数据结构·stm32·单片机·嵌入式硬件
上天_去_做颗惺星 EVE_BLUE19 小时前
C++学习:学生成绩管理系统
c语言·开发语言·数据结构·c++·学习
雪域迷影20 小时前
使用Python库获取网页时报HTTP 403错误(禁止访问)的解决办法
开发语言·python·http·beautifulsoup·urllib