繁体   English   中英

循环中的char数组赋值在C?

[英]char array assignment in a loop in C?

因此,我知道这与指针和/或内存分配有关,但是我不确定如何解决它。 由于某些原因,以下代码在应打印文件中的第一个字符(由路径“文件名”指定)时不打印任何内容。

    int text[1000] = {};  

    FILE *fp;
    fp = fopen( filename, "r" );
    int i = 0;
    while(1) {
        int c = fgetc(fp);
        if ( c==EOF ) {
            break;
        } else {
            text[i] = c;  
        }
    }

    printf ( "%c", text[0] );

谢谢!

您不增加i,以至于发生的事情是您总是更新text [0],最后它在text [0]上只有'\\ n'。 因此,它不会打印任何内容。

#include<stdio.h>

int main()
{

    char text[1000] = {};  

    FILE *fp;
    fp = fopen(filename, "r" );
    int i = 0;
    while(1) {
        char c = fgetc(fp);
        if ( c==EOF ) {
            break;
        } else {
            text[i++] = c;  
        }
    }

    printf ( "%c\n", text[0]);
}

这是正确的使用方式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM