来自网络,联系侵删
136 字
1 分钟
文件操作
一、文件基础操作
1.1 打开文件并读取内容
#include <stdio.h>int main(){ FILE *fp; char ch, *filename = "1.txt"; if((fp = fopen(filename, "r")) == NULL) { printf("cannot open file\n"); exit(0); } while((ch = fgetc(fp)) != EOF) putchar(ch); fclose(fp); return 0;}1.2 从键盘输入字符写入文件
#include <stdio.h>#include <stdlib.h>int main(){ FILE* fp; char ch, filename[20]; printf("Please input(file name):"); scanf("%s", filename); getchar(); if ((fp = fopen(filename, "w")) == NULL) { printf("Can not open file.\n"); exit(0); }
printf("Please input(end of #):"); ch = getchar(); while (ch != '#') { fputc(ch, fp); putchar(ch); ch = getchar(); } putchar('\n'); fclose(fp); return 0;}二、文件填空题
2.1 文件填空1(答案)
#include <stdio.h>#include <stdlib.h>int main(){ FILE* fp; char ch, filename[20]; printf("Please input(file name):"); scanf("%s", filename); getchar(); if ((fp = fopen(filename, "w")) == NULL) { printf("Can not open file.\n"); exit(0); }
printf("Please input(end of #):"); ch = getchar(); while (ch != '#') { fputc(ch, fp); putchar(ch); ch = getchar(); } putchar('\n'); fclose(fp); return 0;}三、综合练习题
3.1 编程题1 - 二维数组变一维
#include <stdio.h>
void fun(int a[3][4], int b[12]) { int i, j, k = 0; for(i = 0; i < 3; i++) { for(j = 0; j < 4; j++) { b[k++] = a[i][j]; } }}
int main() { int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12}; int b[12], i; fun(a, b); for(i = 0; i < 12; i++) { printf("%d ", b[i]); } printf("\n"); return 0;}3.2 编程题2 - 删除字符
#include <stdio.h>
void fun(char *str, char ch) { int i, j = 0; for(i = 0; str[i] != '\0'; i++) { if(str[i] != ch) { str[j++] = str[i]; } } str[j] = '\0';}
int main() { char str[100] = "abcdeabcde"; char ch = 'a'; fun(str, ch); printf("%s\n", str); return 0;}3.3 编程题3 - 统计数字个数
#include <stdio.h>
int fun(char *str) { int count = 0; while(*str != '\0') { if(*str >= '0' && *str <= '9') { count++; } str++; } return count;}
int main() { char str[100] = "abc123def456"; printf("数字个数:%d\n", fun(str)); return 0;}3.4 编程题4 - 返回n-1的数
#include <stdio.h>
int fun(int a[], int n) { int i; for(i = 0; i < n; i++) { a[i]--; } return n;}
int main() { int a[5] = {1, 2, 3, 4, 5}; int n = fun(a, 5); for(int i = 0; i < n; i++) { printf("%d ", a[i]); } printf("\n"); return 0;}3.5 填空题3 - 字符串中数字累加和
#include <stdio.h>
int fun(char *str) { int sum = 0; while(*str != '\0') { if(*str >= '0' && *str <= '9') { sum += *str - '0'; } str++; } return sum;}
int main() { char str[100] = "a1b2c3"; printf("数字之和:%d\n", fun(str)); return 0;}3.6 填空题4 - 插入字符
#include <stdio.h>#include <string.h>
void fun(char *str, char ch) { int i, len = strlen(str); for(i = len; i >= 0; i--) { str[i+1] = str[i]; } str[0] = ch;}
int main() { char str[100] = "hello"; fun(str, 'A'); printf("%s\n", str); return 0;}3.7 填空题5 - 最长字符串
#include <stdio.h>#include <string.h>
char* fun(char str[][20], int n) { int i, max_len = 0, index = 0; for(i = 0; i < n; i++) { if(strlen(str[i]) > max_len) { max_len = strlen(str[i]); index = i; } } return str[index];}
int main() { char str[3][20] = {"abc", "abcd", "ab"}; printf("最长字符串:%s\n", fun(str, 3)); return 0;} 分享
如果这篇文章对你有帮助,欢迎分享给更多人!
部分信息可能已经过时
相关文章 智能推荐












