是否可以从C中的特定起始索引开始编写?
比如说,是否可以从C中的特定起始索引开始编写?,c,fwrite,C,Fwrite,比如说, char ch[50] = "ABCDEFGH"; FILE *fp; fp = fopen("test.txt","w"); fwrite(ch,1,6,fp); 此代码将“ABCDEF”写入文件。但我需要在文件中写入“BCDEFG”。如果不做任何子字符串就可以完成,那就太完美了。记住,在C语言中,字符串只是指向起始字符的指针。只需执行ch+1而不是ch,它将完全执行您想要的操作。要从同一字符串写入BCDEFG,只需将指向数组ch的第二个字节的指针
char ch[50] = "ABCDEFGH";
FILE *fp;
fp = fopen("test.txt","w");
fwrite(ch,1,6,fp);
此代码将“ABCDEF”写入文件。但我需要在文件中写入“BCDEFG”。如果不做任何子字符串就可以完成,那就太完美了。记住,在C语言中,字符串只是指向起始字符的指针。只需执行
ch+1
而不是ch
,它将完全执行您想要的操作。要从同一字符串写入BCDEFG
,只需将指向数组ch
的第二个字节的指针传递到fwrite
:
char ch[50] = "ABCDEFGH";
FILE *fp = fopen("test.txt", "w");
if (fp != NULL) {
fwrite(ch + 1, 1, 6, fp);
...
}
请注意,您还可以直接使用字符串文字(一个常量字符数组):
FILE *fp = fopen("test.txt", "w");
if (fp != NULL) {
fwrite("ABCDEFGH" + 1, 1, 6, fp);
...
}
“ABCDEFGH”+1
与字符串第二个字节的地址和“ABCDEFGH”[1]
相同。数组在表达式中使用时会作为指向其第一个元素的指针衰减,除了作为sizeof
和\u Alignof
fwrite(ch+1,1,6,fp)
Read写入ABCDEF后是否要在下一次迭代中写入BCDEFG?字符串不是指针。指向字符串的指针是指向其起始字符的指针。