文件读取和输入的小问题,指针数组的初始化

qq_30446977 qq_30446977 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<string.h>

#define LENGTH 81
int mai (void)
{
char *yanyu[]=
{
"san ren cheng hu.\n",
"xin xiang shi cheng.\n",
"ke zhou qiu jian.\n"};

char more[LENGTH];
FILE *pfile=NULL;
char* filename="yan yu ji ze";

pfile=fopen(filename,"w");
if(!pfile)
{
printf("\n da kai wen jian chu cuo!");
exit(1);
}

setvbuf(pfile,NULL,_IOFBF,LENGTH);

for(int i=0;i<sizeof(yanyu)/sizeof(yanyu[0]);++i)
if(EOF==fputs(yanyu[i],pfile))
{
printf("du ru shi bai!");
exit(1);
}

fclose(pfile);
pfile=NULL;

pfile=fopen(filename,"a");
if(!pfile)
{
printf("zeng jia wen jian neirong chucuo!");
exit(1);
}
setvbuf(pfile,NULL,_IOFBF,LENGTH);

while(1)
{
fgets(more,LENGTH,stdin);
if(more[0]=='\n')
break;

if(EOF==(fputs(more,pfile)))
{
printf("\n zeng jia wenjian neirong shibai.");
exit(1);
}

}

fclose(pfile);
pfile=NULL;

pfile=fopen(filename,"r");
if(!pfile)
{
printf("da kai wen jian shibai!");
exit(1);
}

setvbuf(pfile,NULL,_IOFBF,LENGTH);

printf("zhe xie yan yu shi:\n");
while(fgets(more,LENGTH,pfile))
printf("%s",more);

fclose(pfile);

remove(filename);
pfile=NULL;
return 0;
}
刚学到从文件读写字符串。但是遇到个的问题。
指针数组的初始化
char *yanyu[]=
{
"san ren cheng hu.\n",
"xin xiang shi cheng.\n",
"ke zhou qiu jian.\n"};
编译不过去。但是我删掉 char more[LENGTH];就能编译通过是为什么呢。
我在网上找了好多资料,别人这样初始化都是可以的啊!下面就是我找到的一个例子。为什么我的一加char more[LENGTH];就编译不过去呢。
char *month_name(int n)
{
static char *name[]={
"Illegal month",
"January","February","March",
"April","May","June",
"July","August","September",
"October","November","December"
};
return (n<1||n>12)?name[0]:name[n];
}
其中,name的声明与排序例子中lineptr的声明相同,是一个一维数组,数组的元素为字符指针。name数组的初始化通过一个字符串列表实现,列表中的每个字符串赋值给数组相应位置的元素。第i个字符串的所有字符存储在存储器中的某个位置,指向它的指针存储在name[i]中。由于上述声明中没有指明数组name的长度,因此,编译器编译时将对初值个数进行统计,并将这一准确数字填入数组的长度。
...全文

相关推荐

可变长二维数组,行数与每行列数由用户输入

实现一个“可变长二维数组”,这个二维数组的行数可由输入决定,每行的元素个数仍可由输入决定。每个数组元素值都是1. 执行结果如下: 请输入行数: 5 请输入第1行的元素个数: 20 请输入第2行的元素个数: 34 请输入第3行的元素个数: 17 请输入第4行的元素个数: 9 请输入第5行的元素个数: 25 11111111111111111111 1111111111111111111111111111111111 11111111111111111 111111111 1111111111111111111111111

luoxiaoqunfeitian

Fortran数据输入输出与数组初始化技巧

本文深入探讨了Fortran编程语言中的数据输入输出机制、数组初始化方法以及公共块(Common Blocks)的使用。通过解析隐式DO循环、REWIND和BACKSPACE语句、DATA语句以及公共块的定义和规则,文章旨在帮助读者更高效地进行文件操作和数据管理。...

焦虑中

C语言34:用指针数组作为函数的参数显示多个字符串.rar

C语言34:用指针数组作为函数的参数显示多个字符串

hgzx_2021

c和指针课后题答案(完整版).pdf

学习C必经之路——c和指针课后题答案(完整版).pdf

沧南

c语言之语法代码集,文件操作 数组 指针 结构体 共同体

这里有c语言的大多数语法实例供参考, 包括基础关键字, 宏定义 ,指针,结构体,共同体,大小端转换,数据交换,递归,零长数组的使用,等.供学习与借鉴

superAzalea
评论 2
收藏 已收藏
分享
返回顶部
qq_30446977
C语言 70,039 成员 243,237 内容