亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么我自己手寫數組str[]沒問題,加入文本讀入之后就運行失敗了。希望慕友能指出問題

為什么我自己手寫數組str[]沒問題,加入文本讀入之后就運行失敗了。希望慕友能指出問題

C
慕桂英4014372 2023-03-18 18:14:21
代碼如下#include<stdio.h>#include<stdlib.h>#include<time.h>int scan();void daoxuprint(char str[100],int n);char str[100];FILE* fp;void main(){int n;n=scan();daoxuprint(str,n);}int scan(){fp=fopen("figure.txt","r");int i,n;for(i=0;str[i]!='\n';i++)n=i;fscanf(fp,"%s",&str);return n+1;}void daoxuprint(char str[100],int n){int j;for(j=n;j>=0;j--)printf("%c",str[j]);}其中figure.txt是任意長度的整數,不知道哪里出了錯,這個程序實現的主要是從文本讀入一個整數,倒序輸出。
查看完整描述

2 回答

?
GCT1015

TA貢獻1827條經驗 獲得超4個贊

#include<stdio.h>
#include<stdlib.h>
//多余 
//#include<time.h>

int scan();
void daoxuprint(char str[100],int n);
char str[100];
FILE* fp;
void main()
{
int n;
n=scan();
daoxuprint(str,n);
}
int scan()
{
int i,n;

fp=fopen("figure.txt","r");
//fscanf(fp,"%s",&str);&str錯誤,改成str 
fscanf(fp,"%s",str);
//文件打開了要關閉 
fclose(fp);
//for前要先執行fscanf(fp,"%s",str);,以讀取文件中的數據到str數組中 
//且fscanf函數不會讀入換行符'\n',str會以'\0'結束,統計長度時應判斷'\0'
//或調用strlen(str);函數 
for(i=0;str[i]!='\0';i++)
n=i;
return n+1;
}
void daoxuprint(char str[100],int n)
{
int j;

//j應從n-1開始,因為n是str的長度,最后一個元素的下標是n-1 
for(j=n-1;j>=0;j--)
printf("%c",str[j]);
}


查看完整回答
反對 回復 2023-03-21
?
Smart貓小萌

TA貢獻1911條經驗 獲得超7個贊

是你的str[i]并沒有值,等于訪問了無效內存,在for循環里沒法判斷,你先fscanf,再for


查看完整回答
反對 回復 2023-03-21
  • 2 回答
  • 0 關注
  • 99 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號