C从文本文件读取负整数

时间:2018-10-27 16:09:31

标签: c

我正在做一个项目。有一个.txt文件,其中包含这样的负整数

0 -1 0
-1 20 -1
0 -1 0

我的问题是我无法读取负数。您对这个问题有什么建议?

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, char * argv[]) {
    FILE *fptr;
    char letter;
    fptr = fopen(argv[1],"r");

    if(fptr == NULL){
        printf("Please provide an argument\n");
        exit(1);
    }

    while ( ( letter = fgetc(fptr) ) != EOF ) {
        printf("%c",letter);
    }

    printf("\n");


    fclose(fptr);

    return 0;
}

1 个答案:

答案 0 :(得分:0)

您可以尝试此操作从文件中读取行,然后解析您的数字。 getline从文件中读取一行,然后strtok给您一个字符串,直到指定的分隔符(在您的情况下为空格)。希望这会有所帮助。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main(int argc, char * argv[]) {

    FILE * fptr = fopen(argv[1],"r");;
    char * line = NULL;
    size_t lineSize = 0;

    if(fptr == NULL){
        printf("Please provide an argument\n");
        exit(1);
    }

    while(getline(&line, &lineSize, fptr) != -1) {

        line[strcspn(line, "\n")] = 0;

        printf("%s\n", line);

        char * token = strtok(line, " ");

        printf("%s\n", token);

        while((token = strtok(NULL, " ")) != NULL) {

            printf("%s\n", token);
        }
    }

    fclose(fptr);

    return 0;
}