메모장이 만들어 졌는데 메모장에는 아무것도 안 적혀있습니다
조회수 545회
안녕하세요 C언어 입문자입니다.
#include <stdio.h>
int main(void)
{
int i = 0;
char name[1001];
printf("당신의 이름이 무엇인가요? : ");
gets(name);
FILE *file = NULL;
file = fopen("your_name.txt", "w");
if (file == NULL)
{
printf("파일을 여는데 실패했습니다.");
}
else
{
printf("파일을 여는데 성공했습니다.");
}
while (name[i] != '\0')
{
fputs(name[i], file);
i++;
}
fclose(file);
}
이 코드를 보고 제 생각대로라면은 your_name 이라는 메모장 안에 입력한 이름이 적혀있어야 될텐데 정작 메모장은 만들어졌는데 안에 아무 내용도 없습니다. 에러는 안떳는데 경고메세지는
[Warning] passing argument 1 of 'fputs' makes pointer from integer without a cast
라고 떳습니다. 혹시 제가 잘못한 부분이 있나요?
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
먼저 fputs 함수의 원형을 보세요.
int fputs(const char* str, FILE* stream);
fputs 함수는 stream 에 문자열을 쓰는 함수입니다.
문자가 아니라 문자열(!)이에요.
즉 char 의 포인터를 넣어야 합니다.
아래와 같이 수정하고 해보세요.
//while (name[i] != '\0') //{ fputs(name, file); // i++; //}
댓글 입력