chào mọi người tình hình là em có bài code sửa 1 dòng trong file txt có nội dung là
Bui Anh Tuan
Son Tung MTP
Kha Banh
Huan Hoa Hong
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE * fptr;
FILE * ftemp;
char path[100];
char newLine[1000]; // luu dong can sua
char buffer[1000];
int line,count; // luu string de chua chuoi tam thoi
printf("Nhap file ban mua chinh sua: ");
scanf("%s",&path );
printf("Nhap dong ban mua sua: ");
scanf("%d",&line);
fflush(stdin);
printf("Nhap noi dung ban muon sua: ");
gets(newLine); // loi xay ra
fptr = fopen(path,"r");
ftemp = fopen("temp.txt" , "w");
if (fptr == NULL || ftemp == NULL)
{
printf("\nUnable to open file.\n");
printf("Please check whether file exists and you have read/write privilege.\n");
exit(EXIT_SUCCESS);
}
count = 0;
while ( fgets(buffer,1000 , fptr) != NULL) {
count++;
if ( count == line) {
fputs(newLine,ftemp);
} else {
fputs(buffer,ftemp);
}
}
fclose(fptr);
fclose(ftemp);
remove(path);
rename("temp.txt",path);
printf("Succes\n");
return 0;
}
khi em để gets(newLine)
và scanf("%d[^\n]")
thì nó sẽ bị ntn ạ
còn khi em đẻ thành fgets(newLine, 1000, stdin);
thì lại okke.1
Nó sẽ thay đổi đúng nội dùng dòng thứ 2 thành ntn mà không bị liền dòng như trên kia ạ:
Bui Anh Tuan
abcdef
Kha Banh
Huan Hoa Hong