Tag: 文件

有没有办法在读取文本文件后从文本文件中删除第一个字符?

有没有办法在阅读后删除文本文件中的第一个字符? 我希望程序从文本文件中读取字符,一旦使用它,它应该删除从文本文件中读取的当前字符。

是否可以在使用O_APPEND模式打开的文件中使用write()?

#include #include #include int main(){ FILE * fp; char buf[128]; int fd = open(“/home/pdave/Downloads/ccode/fileout1”,O_CREAT); printf(“fd after creat:%d”,fd); close(fd); fd = open(“/home/pdave/Downloads/ccode/fileout1”,O_APPEND); printf(“fd after append:%d”,fd); int more=1; int ret=0; while(more){ puts(“enter text:”); scanf(“%s”,buf); puts(buf); ret=write(fd,buf,128); printf(“ret:%d”,ret); puts(“more?”); scanf(“%d”,&more); } } 以上尝试将字符写入使用O_APPEND模式中的open函数打开的文件。 它在使用O_WRONLY模式打开时有效,但在O_APPEND打开时无效。 如果不打开“w”,然后使用搜索SEEK_END然后输入文件或类似的内容,我如何附加到它?

在文件解析中使用fgets()

我有一个包含几行的文件。 我正在对文件进行标记,如果标记包含.word ,我想将该行的其余部分存储在c-string中。 所以如果: array: .word 0:10我想将0:10存储在一个c-string中。 我正在做以下事情: if (strstr(token, “.word”)) { char data_line[MAX_LINE_LENGTH + 1]; int word_ret = fgets(data_line, MAX_LINE_LENGTH, fptr); printf(“.word is %s\n”, data_line); } 这个问题是fgets()抓住下一行。 我如何获取当前行的剩余部分? 那可能吗? 谢谢,

C编程输出文本文件

嗨,我刚开始编程并有一个初学者问题:我想更好地了解fprint()函数是如何工作的,因为有时当我用它创建文本文件时,我意识到有各种类型的文件,例如。(只读,附加)和写)。 当我想写一个我用循环创建的文件时,添加内容的顺序似乎在我做的时候会改变 file = fopen(name,”a+”); 如果是的话,我无法在循环中添加所有内容 file = fopen(name,”w”); 那么创建文本文件最方便的方法是什么? 谢谢! 所以说我想写一个trie树中的所有单词,文本文件中的顺序不同于用print()替换fprint()我有一个树的全局节点和一个指向它的节点指针function struct node *root = (struct node *)malloc(sizeof(struct node)); function是: void printResult(struct node* r){ struct node *p = r; FILE *file; sprintf(name, “man%d.txt”, num); file = fopen(name,”a+”); int i=0; int temp; while(i!=26){ if(p->child[i]==NULL){ i++; continue;} if(p->child[i]->isword==1&&p->child[i]->leaf==1){ word[k]=i+’a’; word[k+1]=’\0′; fprintf(file,”%s”, word);fprintf(file,”%s”,” ” ); fprintf(file,”%d”, p->child[i]->occurrence);fprintf(file,”%s”,” […]

如何使用fgets从用户读取多行输入并使用C中的fput将其写入文件?

我想从用户读取输入(多行)并使用fputs()将其写入文件。 这是我的代码 #include #include int main() { FILE *fp; char s[25]; fp=fopen(“myname”,”w”); if(fp==NULL) { perror(“Error opening file\n”); exit(1); } while(fgets(s,25,stdin)!=NULL) fputs(s,fp); fclose(fp); return 0; } 从用户那里获得输入后,我使用Ctrl + C来关闭程序的输入提示(我正在使用linux)。 然后,如果我打开文件,它什么都没有。 我怎么解决这个问题? 使用fputs()和fgets()有什么问题吗?

从C中的文本文件中读取数据

我有一个文本文件,其中包含以空格分隔的单词。 我想从文件中取出每个单词并存储它。 所以我打开了文件但不确定如何将单词分配给char。 FILE *fp; fp = fopen(“file.txt”, “r”); //then i want char one = the first word in the file char two = the second word in the file

C程序无法打开文件

我在同一个文件夹中编写了proba2.exe和文件text.txt,当我在项目属性中设置命令行参数时无法打开文件,但是当我从命令提示符运行程序时它工作正常。 /* count.c — using standard I/O */ #include #include // ANSI C exit() prototype int main(int argc, char *argv[]) { int ch; // place to store each character as read FILE *fp; // “file pointer” long count = 0; if (argc != 2) { printf(“Usage: %s filename\n”, argv[0]); exit(1); } if ((fp = fopen(argv[1], […]

删除文件末尾的空新行

我有一个文件存储来自用户输入的字符串(stdin) 但是有两种情况 如果我正常阅读,由于用户引入的最后一个字符串中的换行符,我的文件末尾会有一个空行。 如果我从输入字符串中删除\n ,该文件将所有字符串存储在同一行中,这是不需要的。 如何从文件末尾删除该换行符? 如果需要,我可以编辑并提供一些代码。 编辑:让我们说我已经拥有的文件的最后一行是“卡片” 当光标在“卡片”前面时,如果我按向下箭头它不会继续到下一行,而在这种情况下它可以发生一次。 为了让我的代码完美运行,我不能让这种情况发生, 这是我的一个例子: f=fopen(somefile, “w”); do { fgets(hobby, 50, stdin); fprintf(f, “%s”, hobby) } while(strcmp(hobby,”\n”) != 0);

从csv文件中读取并分成变量

我正在尝试将输入值分为两个不同的类别。 第一个数组调用teamname将保留团队名称,第二个数组将保留该周的分数。 我的输入文件是.csv,其代码的方式是将所有内容存储在一个字符串而不是两个单独的变量中。 此外,我不打算精通程序,只熟悉图书馆。 #define _CRT_SECURE_NO_WARNINGS #include #define FILEIN “data.csv” #define FILEOUT “matrix.csv” int main (void) { double nfl[32][32], teamscore[32]; char teamname[30]; int n; FILE *filein_ptr; FILE *fileout_ptr; filein_ptr = fopen (FILEIN, “r”); fileout_ptr = fopen (FILEOUT, “w”); for (n = 1; n <= 32; n++) { fscanf (filein_ptr, "%s %lf\n", &teamname, &teamscore[n]); fprintf (fileout_ptr, […]

在Mac OS X中打开文件

我试图在Mac OS X中用C ++打开一个文本文件,但我总是遇到总线错误。 我不在乎把文件放在哪里。 我只需要阅读它。 我写的地址错了吗? 或者总线错误还有其他原因吗? FILE *dic; dic = fopen(“DICT”,”rb”); dic = fopen(“./DICT”,”rb”); dic = fopen(“~/DICT”,”rb”); dic = fopen(“~//DICT”,”rb”);