inflearn logo
강의

講義

知識共有

Cプログラミング - 入門からゲーム開発まで

別のファイルを読むfscanf

반환값이 무시되었습니다

916

WolLu

投稿した質問数 10

0

컴파일을 해보니 "ㅜ8都궷8都" 같은 알 수 없는 값이 출력됩니다. fscanf(file, "%s %d %d %d %d %d %d", str1, &num[0], &num[1], &num[2], &num[3], &num[4], &num[5]); 라인에 '반환값이 무시되었습니다' 라는 경고문구가 뜨네요..

c

回答 3

0

nadocoding

이 코드로 실행하신 게 맞나요?

함수명이 main(void) 이 아니라 main_file(void) 로 되어 있는거 보니 예제 코드를 사용하신것 같은데, 일단 함수명은 main 으로 해주시고 맨 아래쪽에 printf( 에는 file 이 들어가면 안됩니다. printf("%s... ) 이렇게 바꿔주시구요,

확인해보니 fprintf 를 통해 생성된 파일은 기본적으로 인코딩이라는 값이 euc-kr 로 설정되는데 어쩌면 질문자분 PC 의 텍스트 파일은 utf-8 일 수 있습니다. (win10 기준 메모장에서 만들었다면 euc-kr 입니다)  서로의 인코딩이 달라서 발생할 수 있는 문제이므로, 직접 파일을 생성하지 마시고 소스코드를 통해서 파일을 만드시고 그 파일을 불러오도록 해보세요. 혹은 notepad++ 등을 통해서 인코딩을 euc-kr 로 바꾸신 다음에 파일을 만드신 후에 테스트 해보세요.

그렇게 해서도 안된다면 아래 링크를 통한 설정 변경도 시도해보실 수 있습니다.

https://m.blog.naver.com/PostView.nhn?blogId=yun4794&logNo=221084383612&proxyReferer=https%3A%2F%2Fwww.google.com%2F

감사합니다. ^^

0

WolLu

네, 값은 정상적으로 잘 들어가는데 출력에서 문제가 생기네요 ,

 

## 코드 ##

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

 

 

#define MAX 10000

int main_file(void)

{

// 파일 입출력

// 파일에 어떤 데이터를 저장.

// 파일에 저장된 데이터를 불러오기

 

// fputs, fgets 쌍 -> 문자열 저장

char line[MAX]; // char line[10000]

 

// 파일에 쓰기

/*FILE* file = fopen("G:\\test.txt", "wb"); 

if (file == NULL)

{

printf("파일 열기 실패\n");

return 1;

}

 

fputs("fputs 를 이용해서 글을 적어볼게요\n", file);

fputs("잘 적히는지 확인해주세요\n", file);*/

 

// 파일 읽기

/*FILE* file = fopen("G:\\test.txt", "rb");

if (file == NULL)

{

printf("파일 열기 실패\n");

return 1;

}

 

while (fgets(line, MAX, file) != NULL)

{

printf("%s", line);

}*/

 

// 파일을 열고 나서 닫지 않은 상태에서 어떤 프로그램에 문제가 생기면?

// 데이터 손실 발생 가능 ! 그래서 항상 파일은 닫아주는 습관을 들여주세요

//fclose(file);

 

 

 

// fprintf, fscanf 쌍

// printf("%d %d %s ...")

// scanf("%d %d, &num1, ...)

int num[6] = { 0,0,0,0,0,0 }; // 추첨번호 

int bonus = 0; // 보너스 번호

char str1[MAX];

char str2[MAX];

 

// 파일에 쓰기

/*FILE* file = fopen("G:\\test2.txt", "wb");

if (file == NULL)

{

printf("파일 열기 실패\n");

return 1;

}

 

fprintf(file, "%s %d %d %d %d %d %d\n", "추첨번호", 1, 2, 3, 4, 5, 6);

fprintf(file, "%s %d\n", "보너스번호", 7);*/

 

// 파일 읽기

FILE* file = fopen("G:\\test2.txt", "rb");

if (file == NULL)

{

printf("파일 열기 실패\n");

return 1;

}

fscanf(file, "%s %d %d %d %d %d %d", str1, &num[0], &num[1], &num[2], &num[3], &num[4], &num[5]);

printf(file, "%s %d %d %d %d %d %d\n", str1, num[0], num[1], num[2], num[3], num[4], num[5]);

 

fscanf(file, "%s %d", str2, &bonus);

printf(file, "%s %d\n", str2, bonus);

 

fclose(file);

return 0;

}

0

nadocoding

안녕하세요?

파일에는 값이 잘 들어가있나요?

fprintf 부분을 포함한 전체 코드를 올려주시면 도움 드리겠습니다.

감사합니다.^^

안녕하세요 7장 포인터에 관해 질문드립니다.

0

63

1

8-8 연장전 / 소스코드 공유해드려요. 참고하세요!

0

64

0

섹션6. 프로젝트 소스코드 올려드려요.

0

94

1

영상속에서 배운 코드들을 Git Repository에 올려두될까요?

0

79

1

경찰서 조서 프로젝트 문의

0

104

1

경찰관 조서 프로젝트

0

142

1

scanf

0

92

1

제대로 작성한것 같은데 빌드가 않됩니다.,

0

170

1

구문 오류 C2059

0

400

1

컴파일 시 fatal error C1010 발생

0

284

1

반환값이 없는 함수

0

215

1

반올림 되는건가요?

0

253

1

맥으로수강

0

193

1

10-2

0

257

1

질문이 있습니다

0

342

1

3-3 for 반복문 ++i 일때 질문입니다.

0

244

1

6-4(배열 파트 '문자 vs 문자열') sizeof 예제 다르게 출력되는 분들 참고하세요.

1

411

0

함수 선언과 정의를 동시에 해도 되나요?

0

1076

1

빌드오류가 있다고 나오고, 지정된 파일을 찾을 수 없다고 오류가 나옵니다..

0

403

1

안녕하세요 좋은 강의와 책 감사드립니다!! 다름이 아니라 명령어를 실행시켰을 때 저런식으로 나와서 질문드립니다

0

934

0

질문있습니다!

0

378

1

질문드립니다

0

387

1

scanf_s(" %d", &answer); 이후 바로 종료

0

312

0

질문 드립니다.

0

431

1