Tag: 追加

在C中读取文件:“r”和“a +”标志的不同行为

我想打开一个文件,读取其内容,然后在文件中附加一行。 我以为我应该使用“a +”标志来完成任务。 我有一个打开文件并返回指向该文件的指针的函数。 FILE* open_weekly_disk_file(char* filename){ FILE* weekly_log; weekly_log = fopen(filename, “a+”); //weekly_log = fopen(filename, “r”); if(! weekly_log){ printf(“The attempt to open the weekly log failed!\n”); return NULL; } else{ return weekly_log; } } 然后我有一个函数调用上面的函数并使用scanf从文件中读取内容: void sample_function(char* filename){ FILE* log; char token[100], current_read[100]; int limit; log = opened_weekly_disk_file(filename); // The problem happens here for(limit=0; […]

C字符串追加

我有两个我要追加的C字符串,结果应该分配给lhs变量。 我看到了一个静态初始化代码,如: char* out = “May God” “Bless You”; 。 打印输出真是”May GodBless You” 。 我理解这个结果可以输出一些未定义的行为。 代码实际上是在生产中,从来没有给出错误的结果。 并不是说我们只在一个地方发表过这样的声明。 它可以在非常稳定的代码的多个地方看到并用于形成sql查询。 C标准是否允许这种连接?

动态增加/减少arrays大小

我正在尝试动态增加数组的大小。 是否有任何标准的C或C ++函数,它会在数组的末尾添加额外的空格或将其删除? 我知道,这很难,因为无法确保堆末端有足够的空间。 但这不应该是操作系统的工作吗?

附加到C中的文件末尾

我正在尝试将文件myfile.txt的内容追加到c中第二个文件myfile2.txt的末尾。 我可以复制内容,但我找不到附加的方法。 这是我的代码: FILE *pFile; FILE *pFile2; char buffer[256]; pFile=fopen(“myfile.txt”, “r”); pFile2=fopen(“myfile2.txt”, r+); if(pFile==NULL) { perror(“Error opening file.”); } else { while(!feof(pFile)) { if(fgets(buffer, 100, pFile) != NULL) { fseek(pFile2, -100, SEEK_END); fprintf(pFile2, buffer); } } fclose(pFile); fclose(pFile2); 我不认为我正在使用fseek,但我想要做的是调用fseek将指针放在文件的末尾,然后写入该指针的位置,而不是在该指针的开头。文件。 这是正确的方法吗?