我有一个文本文件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"等于一,因为如果它在第一行,我想倒回到文件的开头,以便在开始时而不是在文件的末尾覆盖。然后增加行,以便在下一次迭代时跳过倒带,并且应该继续覆盖第2行和第3行。它适用于第一行。
有人有任何解决方案吗?顺便说一句,我已经在stackoverflow和其他网站上进行了广泛的研究,但没有运气。这是我的代码,我的输出也在下面:
#include <stdio.h>
#include <stdlib.h>
#define MAX 500
int main() {
char *buffer = malloc(sizeof(char) * MAX);
FILE *fp = fopen("text.txt", "r+");
int line = 1;
while (fgets(buffer, 500, fp) != NULL) {
buffer[0] = 'x';
if (line == 1) {
rewind(fp);
fprintf(fp, "%s", buffer);
}
else {
fprintf(fp, "%s", buffer);
}
line++;
}
free(buffer);
fclose(fp);
}
输出:
xhis is line one
this is line two
xhis is line two
e
x
答案 0 :(得分:6)
// Automatically load required Grunt tasks
require('jit-grunt')(grunt, {
useminPrepare: 'grunt-usemin',
ngtemplates: 'grunt-angular-templates',
cdnify: 'grunt-google-cdn'
});
答案 1 :(得分:2)
我总是建议使用另一个文件做这个kindda解决方案。
答案 2 :(得分:0)
试试这个
{{1}}
我在Windows上解决了这个问题
答案 3 :(得分:0)
// file_overwrite.cpp : main project file.
// File opens and write y value to a file
// again reads same file and re-writes y value to a file
#include "stdafx.h"
using namespace System;
#include<stdio.h>
#include<stdio.h>
#include<string.h>
#include <conio.h>
#include<stdlib.h>
int main(int argc, char *argv[])
{
int x = 19530;
FILE *fp1 = fopen("D:\\Data\\BUFF.txt","w+");
if(fp1 == NULL)
printf("File not opening \n");
int y=x;
fprintf(fp1, "%d \n", y);
fclose(fp1);
printf("\n file -> open -> write y value and close");
freopen("D:\\Data\\BUFF.txt", "w", fp1);
rewind(fp1);
y=100;
fprintf(fp1, "%d \n", y);
printf("\n file -> Reopen -> rewind write y values and close");
fclose(fp1);
getch();
return 0;
}
答案 4 :(得分:0)
// overwrite_file.cpp
// File opens and write y value to a file
// again reads same file and re-writes y value to a file
#include "stdafx.h"
using namespace System;
#include<stdio.h>
#include<stdio.h>
#include<string.h> //Include appropriate headers
#include <conio.h>
#include<stdlib.h>
int main(int argc, char *argv[])
{
int x = 19530; // Give any value in the limit
FILE *fp1 = fopen("D:\\Data\\BUFF.txt","w+"); // open file to write
if(fp1 == NULL) // if the file pointer encounters a null, it may not open neither overwrite
printf("File not opening \n");
int y=x;
fprintf(fp1, "%d \n", y); //print y
fclose(fp1);
printf("\n file -> open -> write y value and close"); // close the file after writing the value of y
freopen("D:\\Data\\BUFF.txt", "w", fp1); //reopen and rewind file
rewind(fp1);
y=100; // this value of y given within the limits gets printed on the .exe console
fprintf(fp1, "%d \n", y);
printf("\n file -> Reopen -> rewind write y values and close"); // rewind write values and close
fclose(fp1);
getch();
return 0;
}