用C打印文件的第一个字母

时间:2015-10-15 23:28:50

标签: c

大家好我打印一个.txt文件的前两个字母/字符有问题,其中包含 - > “需要帮忙”。我想打印前两个字母 - > “NE”。我尝试了ch [],但我无法解决,所以我把它改回了有效的部分:

int main() {

    char ch, file_name[2];
    int i;

    FILE *fp;

    printf("Enter the name of file you wish to see\n");
    gets(file_name);

    fp = fopen(file_name,"r");

    if( fp == NULL )
    {
        printf("Error while opening the file.\n");
        exit(1);
    }

    printf("The contents of %s file are :\n", file_name);


    while( ( ch = fgetc(fp) ) != EOF )
        printf("%c",ch);

    fclose(fp);

    return 0;
}

3 个答案:

答案 0 :(得分:1)

int main() {
char ch[2];
FILE *fp;  
fp = fopen("file.txt","r");      
fread(ch,2,1,fp);
printf("(%c%c) (%2.2s)",ch[0], ch[1],ch); 
}
标准: (ne)(ne)

答案 1 :(得分:0)

我不知道为什么你只需要两个第一个字母,但这里是如何做的。

char file_name[256];
gets(file_name);

int lenght = 0;
strlen(file_name) > 2 ? lenght = 2: lenght = strlen(file_name);

for(int i = 0; i < lenght; i++)
    printf("%c", file_name[i]);

但是我可以为C(char数组)中的字符串提供的建议是尝试始终创建一个您需要的更大的数组。它不会花费太多内存,而且总是更安全。当你调用像printf()这样的标准函数时,它们将检查空终止字符,这将定义字符串的大小。

答案 2 :(得分:-1)

这是我到目前为止所提出的。它会打印前两个字符,但随后会在下方的正方形内打印问号。 这是代码:

int main() {

char ch[2], file_name[100];
int i;

FILE *fp;

printf("Enter the name of file you wish to see\n");
gets(file_name);

fp = fopen(file_name,"r");

if( fp == NULL )
{
  printf("Error while opening the file.\n");
  exit(1);
}

printf("The contents of %s file are :\n", file_name);

fscanf(fp, "%2s", ch); 
printf("%s\n", ch);




while( ( ch[i] = fgetc(fp) ) != EOF ){
    printf("%c",ch);
}
fclose(fp);

return 0;
}