Tag: 文件处理

C Win32:从HBITMAP保存.bmp图像

我正在使用framegrabber,需要从计算机内存中获取图像并将其保存在图像文件中。 在尝试了几天后,我最终得到了以下2个函数,它们创建了一个文件,Windows操作系统能够运行.bmp文件,但位图文件是黑色的(图像大小为900KB,640 * 480)。 有没有人知道为什么,图片是黑色的? 这里有两个function: LPSTR CreateBMP( HWND hAppWnd, int nImageType ) { void * pWinGBits = NULL; int i; Z_BITMAPINFO zWinGHeader; // bitmapinfo for cerating the DIB // create DC for bitmap. hDCBits = CreateCompatibleDC( ghDCMain ); switch ( nImageType ) { case bayer_filter: zWinGHeader.bmiHeader.biSize = sizeof( BITMAPINFOHEADER ); zWinGHeader.bmiHeader.biPlanes = 1; zWinGHeader.bmiHeader.biClrImportant […]

从C中的文件打印标记化数据

我一直试图通过首先对文件进行标记来读取文件中的数据。 在这个例子中,我已经做到这一点,它要求你先自己输入数据(我已经确定有效),然后读取它,但用空格标记。 因此,如果我要进入’Hello World’,它应该返回:’Hello,World’。 这是我的代码。 char fname[] = “myfile”; FILE *fp; fp = fopen(fname, “w+”); char buffer[20]; sprintf(prompt, “Enter your string: “, MAX_TAN_INPUT); getString(number, MAX_TAN_INPUT, prompt); printf(“\n”); if (fp == NULL) { fprintf(stderr, “Unable to open file %s\n”, fname); } else { printf(“YAYYY. It opened!\n”); fprintf (fp, “%s\n”, number); fseek(fp, SEEK_SET, 0); fread(buffer, strlen(fp)+1, 1, […]

具有不同数据类型的文本文件到结构数组

我必须解析具有3种不同数据类型的文本文件。 我希望它保存在一个包含三个成员的结构数组中。 我的文本文件如下所示: AB 45.78965 AC 35.46731 BC 46.78695 我正在阅读它的程序如下,它不起作用。 我究竟做错了什么? #include struct gra { char from; char to; double w; }; int main () { FILE *fp = fopen(“graph.txt”, “r”); int i = 0; while (!feof(fp)) { fscanf(fp, “%[^\t]”, &graph[i].from, &graph[i].to, &graph[i].w); i++; } fclose(fp); }

将文本文件中的输入读入c中的结构数组

我的结构定义是, typedef struct { int taxid; int geneid; char goid[20]; char evidence[4]; char qualifier[20]; char goterm[50]; char pubmed; char category[20]; } gene2go; 我有一个名为“gene2go.txt”的标签分隔文本文件。 该文件的每一行都包含taxID , geneID , goID , evidence , qualifier , goterm , pubmed和category信息。 文件的每一行都将保存在一个结构中。 当程序运行时,它会首先将输入文件的内容读入gen2go类型的数组中,我使用了一个名为readInfo的函数。 该程序还将从命令行获取以下输入参数, 输入类型(1表示taxid ,2表示geneid ,3表示goid )和搜索词 有一个名为listData的函数将文件“gene2go.txt”中与输入类型和搜索项匹配的行列表写入文件“output.txt”。 这是我的文本文件”gene2go.txt” , 3702 814629 GO:0003676 IEA – nucleic acid binding – […]

feof()在C中是如何工作的

feof()是否为filepointer的当前位置检查eof或检查当前filepointer旁边的位置? 谢谢你的帮助 !

修改c中文件的现有内容

int main() { FILE *ft; char ch; ft=fopen(“abc.txt”,”r+”); if(ft==NULL) { printf(“can not open target file\n”); exit(1); } while(1) { ch=fgetc(ft); if(ch==EOF) { printf(“done”); break; } if(ch==’i’) { fputc(‘a’,ft); } } fclose(ft); return 0; } 正如我可以看到的那样,我想以这样一种方式编辑abc.txt ,即i将其替换为a 。 该程序工作正常,但当我在外部打开abc.txt ,它似乎是未经编辑的。 任何可能的原因? 为什么在这种情况下, i后面的字符不能替换为a ,如答案所示?

在C中以hex的forms读取文件的内容

我有一个hex值保存为hex.txt的文件 9d ff d5 3c 06 7c 0a 现在我需要将其转换为字符数组 unsigned char hex[] = {0x9d,0xff,0xd5,0x3c,0x06,0x7c,0x0a} 我该怎么做 ?

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

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

为什么我在“if(fd = fopen(fileName,”r“)== NULL)”中收到此警告?

FILE *fd; if (fd=fopen(fileName,”r”) == NULL) { printf(“File failed to open”); exit(1); } 这是一段代码片段。 当我用gcc编译它时,我得到以下警告: – warning: assignment makes pointer from integer without a cast 当我把fd = fopen(argv [2],“r”)放在括号内时,问题就解决了。 当没有放置括号时,我无法理解将整数转换为指针的位置。