Editing a .c file using a .m file

조회 수: 6 (최근 30일)
Shrirang
Shrirang 2015년 2월 4일
댓글: Shrirang 2015년 2월 5일
I am trying to edit already existing c file using a .m file. I want to insert some characters in .c file. But my code is overwriting the .c file instead of inserting the characters. Following is my code
fileID = fopen('XYZ.c', 'r+'); a = fprintf(fileID,'\n%s\n','XYZ'); fclose(fileID);
Original .c file (just an example) : ABCDEF; ABCDEF; ABCDEF;
After editing the .c file it becomes as follows
XYZ F; ABCDEF; ABCDEF;
My expection was it should not overwrite anything in original c file :
XYZ
ABCDEF; ABCDEF; ABCDEF;
Please guide me how I should get my expected results

채택된 답변

Michael Haderlein
Michael Haderlein 2015년 2월 4일
Well, the pointer is at the beginning of the file and that's where the data is written. So the functions behave as they should.
If you wanted to attach some data at the end of the file, you could use the permission 'a+'. In case you want to extend the file at the beginning, I think you need to create an entire new file:
readID=fopen('XYZ.c','r');
writeID=fopen('NEW.c','w');
fprintf(writeID,'%s\n','XYZ');
fwrite(writeID,fread(readID));
fclose(readID);
fclose(writeID);
In principle, you can of course first read the file and then overwrite it (so both files are the same):
fileID=fopen('test.txt','r+');
data=fread(fileID);
frewind(fileID);
fprintf(fileID,'%s\n','XYZ');
fwrite(fileID,data);
fclose(fileID);
edit test.txt
  댓글 수: 1
Shrirang
Shrirang 2015년 2월 5일
Yes, Creating a entirely new file is a good idea. Thank you !!!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Low-Level File I/O에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by