采用结构体处理,设立二维数组edit[M][N]。M行,每行可存N个字符。用getchar()输入,单词之间用空格隔开(空格也会作为字符存入),当捕获回车字符(‘\n’)时则换行即M++。 采用文本形式存储,只需要提供写文件
时间: 2024-03-29 07:34:14 浏览: 56
好的,下面是一个用C语言实现的将输入的数据存储到二维数组中并写入文件的例子:
```
#include <stdio.h>
#define M 10 // 行数
#define N 20 // 每行字符数
struct line {
char content[N]; // 每行的内容
};
int main() {
struct line edit[M];
int i = 0, j = 0;
char c;
// 输入数据
while ((c = getchar()) != EOF) {
if (c == '\n') {
i++; // 换行
j = 0;
if (i == M) {
break; // 达到最大行数
}
} else {
edit[i].content[j++] = c; // 存储字符
if (j == N) { // 达到每行最大字符数
i++;
j = 0;
if (i == M) {
break; // 达到最大行数
}
}
}
}
// 写入文件
FILE *fp = fopen("data.txt", "w");
if (fp == NULL) {
printf("Failed to open file.\n");
return 1;
}
for (int k = 0; k <= i; k++) {
fprintf(fp, "%s\n", edit[k].content);
}
fclose(fp);
return 0;
}
```
上述代码中,定义了一个结构体 `line`,包含了每一行的内容。使用 `getchar()` 逐个字符读入,遇到空格则存储到二维数组中,遇到回车符则换行并将行数 `i` 加 1,同时将列数 `j` 重置为 0。当行数达到最大值 `M` 时,便停止输入。最后,将二维数组中的内容写入文件 `data.txt` 中。
阅读全文