Tag: 文件

Linux中没有O_BINARY和O_TEXT标志?

在Linux中使用系统级IO时,我注意到编译器识别出O_RDONLY和O_RDWR标志,但它对O_BINARY和O_TEXT标志的含义O_TEXT 。 这是Linux的事吗?

如何在C中读取和覆盖文本文件?

我有一个文本文件text.txt读取(为简单起见) this is line one this is line two this is line three 为了简单起见,我只是试图将每行中的第一个字符设置为’x’,所以我想要的结果是 xhis is line one xhis is line two xhis is line three 所以我打开text.txt文件并尝试用所需的输出覆盖每一行到同一文本文件。 在while循环中,我将每行中的第一个字符设置为“x”。 我还将变量“line”设置为等于1,因为如果它在第一行,我想回放到文件的开头,以便在开始时而不是在文件的末尾进行覆盖。 然后增加行,以便在下一次迭代时跳过倒带,并且应该继续覆盖第2行和第3行。 它适用于第一线。 有人有任何解决方案吗? 顺便说一句,我已经在stackoverflow和其他网站上进行了广泛的研究,但没有运气。 这是我的代码,我的输出也在下面: #include #include #define MAX 500 int main() { char *buffer = malloc(sizeof(char) * MAX); FILE *fp = fopen(“text.txt”, “r+”); int line […]

如何只阅读每行的第一个单词?

我已经做了很多简单的程序,但我只是试图从文本文件的每一行读出第一个单词到一个char word[30] 。 我试过了,但没有成功。 哦,每次我阅读它都要重用那个char。 (每次我阅读时都要列出一个有序列表)。 任何人都可以通过一种简单而“干净”的方式向我展示一种从文件中读取这种方式的方法吗? FILE *fp; char word[30]; fp = fopen(“/myhome/Desktop/tp0_test.txt”, “r”); if (fp == NULL) { printf(“Erro ao abrir ficheiro!\n”); } else { while (!feof(fp)) { fscanf(fp,”%*[^\n]%s”,word);//not working very well… printf(“word read is: %s\n”, word); strcpy(word,””); //is this correct? } } fclose(fp); 例如,对于包含以下内容的文件: word1 word5 word2 kkk word3 1322 word4 synsfsdfs […]

常见的误解:文件末尾有一个EOF字符

我正在阅读“卡特的PC汇编语言”,我在第32页的脚注中看到了这句话让我很困惑! 如果我们假设文件末尾可能没有EOF(正如书中所说)是正确的陈述,那么我们如何才能找出文件末尾的位置? 它还产生了另一个问题:fseek是否使用EOF在文件中来回传递?

C – 文件中的字符数

所以我想创建一个程序来计算文件中每个字符的出现次数。 例如: 字符0x67(g)的4个实例 11个字符0x68(h)的实例 等等 我不知道如何显示和计算实例。 有什么想法吗? #include const char FILE_NAME[] = “input.txt”; #include int main() { int count = 0; /* number of characters seen */ FILE *in_file; /* input file */ /* character or EOF flag from input */ int ch; in_file = fopen(FILE_NAME, “r”); if (in_file == NULL) { printf(“Cannot open %s\n”, […]

用C语言快速读取文件

嗯,我想知道是否比使用fscanf()更快地读取文件的方法 例如,假设我有这个文本 4 55 k 52 o 24 l 523 i 首先,我想读取第一个数字,它给出了以下行数。 将这个数字称为N. 在N之后,我想要读取具有整数和字符的N行。 使用fscanf会是这样的 fscanf(fin,”%d %c”,&a,&c);

将数据从文件放入C中的数组

这是我的代码。 #include #include int main() { //Vars FILE *fp; char word[9999], *arrayOfWords[9999]; int wordCount = 0, i; //Actions fp = fopen(“data.txt”, “r”); if(fp != NULL) { while(!feof(fp)) { fscanf(fp, “%s”, word); arrayOfWords[wordCount] = word; wordCount++; } for(i = 0; i < wordCount; i++) { printf("%s \n", arrayOfWords[i]); } puts(""); } else { puts("Cannot read the […]

有没有办法找到从文件中读取的当前行的行号?

1)在C中是否有一种方法可以找到我们从文件中读取的行的行号。 2)我还想知道是否有另一种方法可以找出文件中的总行数,而不是通过创建一个循环来查找每行中的EOF ,直到它到达结尾。

修改C中二进制文件中的一些字节

有没有办法改变二进制文件中单个字节的值? 我知道如果你以r+b模式打开文件,光标位于现有文件的开头,你在该文件中写入的任何内容都将覆盖现有内容。 但我想在一个文件中只改变1个字节。 我想你可以复制不应修改的文件内容,并在正确的位置插入所需的值,但我想知道是否还有其他方法。 我想要实现的一个例子:将第3个字节更改为67 初始档案: 00 2F 71 73 76 95 写入后的文件内容: 00 2F 67 73 76 95

可以向文件写入少于1个字节

据我所知,C中的最小单位是一个byte 。 这种约束来自哪里? 中央处理器? 例如,如何将nibble或单个bit写入文件?