c - 将txt文件放入数组中从第12个元素开始

标签 c arrays io

我正在用 C 语言编写一个程序,其中我从 .txt 文件中读取数据,我的目标是将 .txt 文件中的每个元素放入一个数组中。当我编译并运行该程序时,返回值 50、55 和 0。这些是 2、7 和 0 的 ASCII 值(我不确定为什么这些元素被存储为 ASCII 代码,但现在没问题)(这意味着自从我们到达 .txt 文件末尾以来,没有任何内容被初始化。为什么我的程序没有从头开始读取 .txt 文件?

...

int main(int argc, char *argv[]){
FILE *inputFile;
char *input = argv[1];
char magicSquareArray[257];

inputFile = fopen(input, "r");

if (inputFile == 0){
    printf("Cannot open file for reading!\n");
    return -1;
}

fscanf(inputFile, "%s", magicSquareArray);
while (!feof(inputFile)){
    fscanf(inputFile, "%s", magicSquareArray);
}

printf("%i\n", magicSquareArray[0]);
int sideSize = magicSquareArray[0];
int squareSize = sideSize * sideSize;
printf("%i\n", squareSize);

fclose(inputFile);

文本文件:

3
4,3,8
9,5,1
2,7,6

最佳答案

也许您需要如下所示的代码。 (但是,我认为是以下方式。 To prepare an array read the first number, To assign a numerical value to read into it. )

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

int main(int argc, char *argv[]){
    FILE *inputFile;
    char *input = argv[1];
    char magicSquareArray[257];
    int ch, len;
    inputFile = fopen(input, "r");

    if (inputFile == 0){
        printf("Cannot open file for reading!\n");
        return -1;
    }
    len = 0;
    while((ch = fgetc(inputFile)) != EOF && len < sizeof(magicSquareArray)-1){
        magicSquareArray[len++] = ch;
    }
    magicSquareArray[len] = 0;
    fclose(inputFile);

    printf("%c\n", magicSquareArray[0]);
    int sideSize = atoi(magicSquareArray);
    int squareSize = sideSize * sideSize;
    printf("%i\n", squareSize);

    return 0;
}

关于c - 将txt文件放入数组中从第12个元素开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39715666/

相关文章:

带粗细绘制算法的圆

c++ - 数组的地址 VS 指针到指针 : Not the same?

javascript - 如何转换一个特定对象中的对象数组?

java - Java中无需排序即可查找众数和众数频率

C mktime() 打印问题

c - 程序测试员,bash

python - 为什么 Python unicode 字符串需要对 UTF-8 BOM 进行特殊处理?

java:在运行时跟踪文件大小?

c - 声明 gchar 后是否需要 g_free?

java - 扫描仪在使用 next() 或 nextFoo() 后跳过 nextLine()?