无法从文件C反向读取输出结果

问题描述 投票:0回答:1

我想做一些非常简单的事情,但是不知怎么做。我有一个带有数字的文件。我想从该文件中读取并打印这些数字,但顺序相反。

所以假设我们有数字:10324367我希望有:76433210

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

#define MAX 255

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

    char userInput[MAX], target[MAX];

    FILE *file = stdin;
    if (argc > 2) {
        fprintf(stderr, "Usage: %s[<file>]\n", argv[0]);
        exit(EXIT_FAILURE);
    }
    if (argc == 2) {
        file = fopen(argv[1], "r");
        if (!file) {
            perror(argv[0]);
            exit(EXIT_FAILURE);
        }
    }

    while(fgets(userInput, sizeof(userInput), file)) {

        size_t len = strlen(userInput);


        int i;
        for (i = len-1; i >= 0; i--) {
            if (userInput[i] == ' ') {


                userInput[i] = '\0';


                printf("%s ", &(userInput[i]) + 1);
            }
        }


        printf("%s", userInput);


    }
    if (file != stdin) {
        fclose(file);
    }
    exit(EXIT_SUCCESS);
}

有人看到错误了吗?

这是我的.txt文件的内容:

11
34
45
3
78
43
3
4
9
34
23
43
c arrays reverse
1个回答
0
投票

您的程序旨在在一行上接受其所有输入。您的输入文件包含多行。

© www.soinside.com 2019 - 2024. All rights reserved.