大家好我打印一个.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;
}
答案 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;
}