Tag: file io

fscanning .txt文件时如何跳过第一行?

我正在使用C,我的知识非常基础。 我想扫描文件并在第一行或第二行之后获取内容… 我试过了 : fscanf(pointer,”\n”,&(*struct).test[i][j]); 但是这个语法只是从第一行开始= 这怎么可能 ? 谢谢。

如何从C中的二进制文件中读取浮点数?

我通过谷歌找到的所有东西都是垃圾……注意我想用C语言答案,但是如果你用C ++解决方案补充你的答案,那么你就得到奖励积分! 我只是想能够从二进制文件中读取一些浮点数到一个数组中 编辑:是的我知道关于Endian-ness …而且我不在乎它是如何存储的。

如何创建“x”大小的文件?

如何在c中设置文件的大小? 我打开后会这样做吗?

如何在C中清除文件的全部内容?

我有一个带有user1数据的文件。 我想通过清除文件的内容为user2使用相同的文件。 我的想法是,当一个新用户来时,前一个用户的数据应该是清楚的,并且应该为新用户准备相同的文件。

fclose返回值检查

是否需要检查fclose的返回值? 如果我们已成功打开文件,它可能无法关闭的可能性有多大? 谢谢! 问候,杰伊

将CSV文件中的值读入变量

我正在尝试编写一段简单的代码来读取CSV文件中的值,最多包含100个条目到一个结构数组中。 CSV文件的一行示例: 1,先生,詹姆斯,奎格利,主任,200000,0 我使用以下代码读取值,但是当我打印出值时,它们是不正确的 for(i = 0; i < 3; i++) /*just assuming number of entries here to demonstrate problem*/ { fscanf(f, "%d,%s,%s,%s,%s,%d,%d", &inArray[i].ID, inArray[i].salutation, inArray[i].firstName, inArray[i].surName, inArray[i].position, &inArray[i].sal, &inArray[i].deleted); } 然后当我打印出第一个名字时,这些值都被分配给第一个名字: for(j = 0; j < 3; j++) /* test by printing values*/ { printf("Employee name is %s\n", inArray[j].firstName); } 以这种方式给出ames,Quigley,Director,200000,0等等。 我确定这是我如何格式化fscanf线但我不能让它工作。 这是我正在阅读的结构: typedef […]

fgetc():只检查EOF就够了吗?

在网络上找到的各种例子中, fgetc()的使用方式如下: FILE *fp = fopen(PATH, “r”); if (fp == NULL) { perror(“main”); exit(EXIT_FAILURE); } int ch; while (ch = fgetc(fp) != EOF) { // do something } 但根据fgetc()的手册页 如果发生读错误,则应设置流的错误指示符,fgetc()应返回EOF,[CX]并设置errno以指示错误。 所以我需要检查一下吗? 如何?

通过TCP / IP连接发送二进制文件

我将在这里重述整个问题,以便它是可以回答的。 我能够在不使用套接字的同一台机器上完美地复制二进制文件,只是制作一个简单的复制function。 尝试实现此代码以复制到TCP / IP连接但无法使其工作。 FILE *filehandle = fopen(“imagefile.jpg”, “rb”); FILE *dest =fopen(“imagecopy.jpg”, “wb”); // copied image file fseek(filehandle, 0, SEEK_END); unsigned long filesize = ftell(filehandle); char *buffer = (char*)malloc(sizeof(char)*filesize); rewind(filehandle); int bytesread = fread(buffer, sizeof(char), filesize, filehandle); for( int i=0; i<filesize; i++ ) { fputc(buffer[i], filehandle); // copies all the contents to dest } […]

C – 使用fopen,fclose,fputc等

我已经让这段代码最终在我的命令行上使用了一个参数,即一个文件供它使用,尽管我设计的代码的概念是使用无限数量的文件。 它的作用是使用包含以空格分隔的单词的X个文本文件,并用\n替换空格,从而创建单词列表。 虽然,它成功地完成了第一个参数,但它只是忽略了第二个参数。 另一个小问题似乎是它最后还打印出一些垃圾信,Y上面有两个点; 我假设一些EOF符号,但我似乎无法阻止这种情况发生! int main(int argc, char** argv) { FILE *fpIn, *fpOut; int i, j; j = 1; char c; char myString[256]; printf(“%d”, argc); printf(“\n”); printf(“The following arguments were passed to main(): “); for(i=1; i<argc; i++) printf("%s ", argv[i]); printf("\n"); while(argc–) { for(i = 1; i < argc; i++) { fpIn = fopen(argv[j], […]

为什么我的简单C程序向stdout显示垃圾?

考虑以下简单的C程序,该程序将文件读​​入缓冲区并将该缓冲区显示到控制台: #include main() { FILE *file; char *buffer; unsigned long fileLen; //Open file file = fopen(“HelloWorld.txt”, “rb”); if (!file) { fprintf(stderr, “Unable to open file %s”, “HelloWorld.txt”); return; } //Get file length fseek(file, 0, SEEK_END); fileLen=ftell(file); fseek(file, 0, SEEK_SET); //Allocate memory buffer=(char *)malloc(fileLen+1); if (!buffer) { fprintf(stderr, “Memory error!”); fclose(file); return; } //Read file contents […]