C를 사용하여 파일의 숫자를 합산하려고합니다. 파일과 같은 숫자가 포함되어있는 코드를 실행하는 경우텍스트 파일에서 값을 합산하려고합니다. 인식 할 수없는 문자가 출력으로 수신됩니까?
123
456
788
...
356
를 제대로 입력을 요청하고 내가 입력 한 숫자를 인쇄합니다. 그러나 파일을 합산하지 않고 작은 문자처럼 인식 할 수없는 문자 기호 만 표시합니다. 숫자가 할당 된 INT_MAX_SIZE 이상이라고 생각하지 않습니다. 무슨 문제가있는 것 같습니까?
#include <stdio.h>
main() {
//Number variable to assign each line to
int c;
int fds[2];
int childid;
int size;
int number;
int sum;
printf ("Enter the number of processes to create: ");
scanf ("%d", &number);
printf ("You entered: %d", number);
printf("\n");
//File I/O operations
FILE *file;
//Open file for reading
file = fopen("Project1_OS/project1_data/file1.dat", "r");
//If file is found
if (file) {
//While file has data to be read
while ((c = getc(file)) != EOF)
//Print data
//putchar(c);
sum+=c;
//Close the file I/O
fclose(file);
}
putchar(sum);
}
putchar 그런 식으로 작동하지 않습니다. 당신은 printf가 필요하다. –
1.'sum'은 unintialised이다. 2. 정수가 아닌 ASCII 문자를 읽는 중입니다. 요약하기 전에 문자/문자열에서 읽은 것을 정수로 변환해야합니다. – kaylum
고정! 고맙습니다. @pfannkuchen_gesicht :) –