前提・実現したいこと
c言語でのsscanfの仕様を勉強しようとしていました。
2017.txtファイルから文字列を取得してきて表示するというプログラムです。
2017.txt内の文字列が"勝ち"のみの場合は正しく出力することができたのですが文字列を一つ増やすと文字化けが発生しました。
発生している問題・エラーメッセージ
printfの出力が�となってしまう
該当のソースコード
c
1#include <stdio.h> 2#include <stdlib.h> 3#include <string.h> 4 5#define N 256 6 7int main(int argc,char *argv[]){ 8 FILE *fp; 9 char fileName[] = "2017.txt"; 10 fp = fopen(fileName,"r"); 11 if(fp == NULL) { 12 printf("%s file not open!\n", fileName); 13 return -1; 14 } 15 16 char file[N]; 17 char str1[5]; 18 char str2[5]; 19 20 fgets(file,N,fp); 21 printf("%s\n",file); 22 sscanf(file,"%s %s",str1,str2); 23 24 printf("%s\n",str1); 25 26 fclose(fp); 27 return 0; 28}
2017txt
1勝ち 負け
試したこと
2017.txt内のスペースは半角でcのsscanfの第二引数の部分のスペースも半角にしてました。
補足情報(FW/ツールのバージョンなど)
visual stdio code 1.33.1
Mac OS 10.14.5
初めて質問するため至らない点が多いと思いますが回答していただけたら幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/17 09:42
2019/08/17 10:33
2019/08/17 10:43
2021/07/28 04:19