결과의 이름을 변경하는 것보다 다른 파일에 결과를 저장하십시오. 이 코드는 homework.txt
을 열고, 12 개의 대체 -> (25)와 homework_new.txt
#include <stdio.h>
#include <string.h>
#define MAXBUF 42
#define HOMEWORKFILE "homework.txt"
#define HOMEWORKNEWFILE "homework_new.txt"
int main(int argc, char **argv)
{
char buf[MAXBUF+1];
char str[MAXBUF+1];
FILE *hw;
FILE *hw_new;
int length;
int i, j;
int number;
char is_first;
int n_line = 0;
hw = fopen(HOMEWORKFILE, "r");
hw_new = fopen(HOMEWORKNEWFILE, "w");
if (!hw)
{
fprintf(stderr, "File not found: %s\n", HOMEWORKFILE);
return 5;
}
while(!feof(hw))
if (fgets(buf, MAXBUF, hw) != NULL)
{
length = strlen(buf);
j = 0;
str[0] = 0;
is_first = 1;
n_line++;
/* parse string */
for(i = 0; i < strlen(buf); ++i)
{
if (isblank(buf[i]) || buf[i] == '\0' || buf[i] == '\n')
{
str[j] = 0;
number = atoi(str);
if (is_first)
is_first = 0;
else
fprintf(hw_new, " ");
if (number == 12)
fprintf(hw_new, "%d", 25);
else
fprintf(hw_new, "%d", number);
j = 0;
}
else if (isdigit(buf[i]))
{
str[j++] = buf[i];
}
else
{
fprintf(stderr, "bad input on line %d '%s'\n", n_line, buf);
return 100;
}
}
fprintf(hw_new, "\n");
}
fclose(hw_new);
fclose(hw);
return 0;
}
확인'fgetc' 참조에 결과를 기록, 그것은 당신에게 문자가 아닌 정수를 얻을 것이다. 또한 '숙제'를 태그로 추가하십시오. –
글쎄, 제대로 완료 되었다면'fgetc'로 처리 할 수 있지만, 여기에있는 경우는 의심 스럽다. – littleadv
나는 그것이 문자라는 것을 알고있다. 하지만 정수를 사용하면, 그것은 작동합니다 .. 그래서 .. 나는 정수 부분으로 문자를 생략했습니다. – william