Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以从C中的特定起始索引开始编写?_C_Fwrite - Fatal编程技术网

是否可以从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?字符串不是指针。指向字符串的指针是指向其起始字符的指针。