数组赋值错误,怎么解决啊

etwtwett 2012-08-09 03:28:05
#include "stdio.h" (c程序)
#include "string.h"
#include "stdlib.h"
void main() /*程序的入口*/
{
FILE *fp1,*fp2; /*定义两个文件指针变量fp1,fp2*/
char str[10]={0,0,0,0,0,0,0,0,0,0};
char j;
int i=2;
if((fp2=fopen("file2.txt","r"))==0)
{
printf("不能打开文件\n");
exit(0);
}
printf("输出字符串:\n");
while(fgets(str,10,fp2)!=0)
j=str[i];
printf("%s",j);
printf("\n");
fclose(fp2);


file.txt中是abcdefghij十个字符。
请各位看看哪里出错了,我认为 应该输出的是b,可实际是输出是<null>,请问哪里出错了,
如何把数组中的某个数据传输到另一个变量上啊,是 int cha[3]={1,2,3}; int j=cha[2];这样是不是变量j的是就变成2了?请各位大侠解释啊!!
...全文
349 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
bobo928843007 2012-08-09
  • 打赏
  • 举报
回复
如何把数组中的某个数据传输到另一个变量上啊,是 int cha[3]={1,2,3}; int j=cha[2];这样是不是变量j的是就变成2了?请各位大侠解释啊!!
对于这个问题,我可以说一下我的经验,对于不懂得问题,把它写成代码,运行就明白了。古人有云,受(授)人予鱼,不如受(授)人予渔。这里的j应该为3,因为c语言下标是从0开始,也就是cha[0]=1,cha[1]=2,cha[2]=3;


lxn2577 2012-08-09
  • 打赏
  • 举报
回复
菜鸟飞过...应该是数据类型和数组下标从0开始的问题吧
bobo928843007 2012-08-09
  • 打赏
  • 举报
回复
对了,复制出点问题。if((fp2=fopen("file1.txt","r"))==) 应该改为 if((fp2=fopen("file1.txt","r"))==0),0哪里我习惯用NULL,用0也能运行。
bobo928843007 2012-08-09
  • 打赏
  • 举报
回复
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
void main() /*程序的入口*/
{
FILE *fp2; /*定义两个文件指针变量fp1,fp2*/
char str[10]={0,0,0,0,0,0,0,0,0,0};
char j;
int i=2;
if((fp2=fopen("file1.txt","r"))==)
{
printf("不能打开文件\n");
exit(0);
}
printf("输出字符串:\n");
while(fgets(str,10,fp2)!=0)
j=str[i];
printf("%c",j);
printf("\n");
fclose(fp2);
}
代码基本没错,单输出结果应该是c,因为i=2,str[2]为c,运行过了
IVERS0N 2012-08-09
  • 打赏
  • 举报
回复
除了 %c 没什么错把

检查下文件内容
clement_yin 2012-08-09
  • 打赏
  • 举报
回复
看错了 没事[Quote=引用 7 楼 的回复:]

while循环没大括号啊
[/Quote]
clement_yin 2012-08-09
  • 打赏
  • 举报
回复
while循环没大括号啊
夏天__ 2012-08-09
  • 打赏
  • 举报
回复
#include "stdio.h" (c程序)
#include "string.h"
#include "stdlib.h"
void main() /*程序的入口*/
{
FILE *fp1,*fp2; /*定义两个文件指针变量fp1,fp2*/
char str[10]={0,0,0,0,0,0,0,0,0,0};
char j;
int i=2;
if((fp2=fopen("file2.txt","r"))==0) // if((fp2=fopen("file2.txt","r"))==NULL)
{
printf("不能打开文件\n");
exit(0);
}
printf("输出字符串:\n");
while(fgets(str,10,fp2)!=0) //if(fgets(str,10,fp2)!=0)这个地方时关键。,
j=str[i];
[color=#FF0000] printf("%s",j);// printf("%c",j);j为字符型,变量类型要注意。

printf("\n");
fclose(fp2);
夏天__ 2012-08-09
  • 打赏
  • 举报
回复

#include "stdio.h" (c程序)
#include "string.h"
#include "stdlib.h"
void main() /*程序的入口*/
{
FILE *fp1,*fp2; /*定义两个文件指针变量fp1,fp2*/
char str[10]={0,0,0,0,0,0,0,0,0,0};
char j;
int i=2;
if((fp2=fopen("file2.txt","r"))==0) // if((fp2=fopen("file2.txt","r"))==NULL)
{
printf("不能打开文件\n");
exit(0);
}
printf("输出字符串:\n");
while(fgets(str,10,fp2)!=0) //if(fgets(str,10,fp2)!=0)这个地方时关键。,
j=str[i];
[color=#FF0000] printf("%s",j);// printf("%c",j);j为字符型,变量类型要注意。

printf("\n");
fclose(fp2);

[/color]
lylm 2012-08-09
  • 打赏
  • 举报
回复
如何把数组中的某个数据传输到另一个变量上啊,是 int cha[3]={1,2,3}; int j=cha[2];这样是不是变量j的是就变成2了?
>>不是2是3,数组下标从0开始
etwtwett 2012-08-09
  • 打赏
  • 举报
回复
还是不行
aozhi 2012-08-09
  • 打赏
  • 举报
回复
基本功呀基本功。
ouyh12345 2012-08-09
  • 打赏
  • 举报
回复
printf("%s",j);

printf("%c",j);

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧