关于 fegts() 丢每行 首个字符的有关问题
关于 fegts() 丢每行 首个字符的问题
大家好,小弟用 fgets 处理 .cpp 文件 内容的时候 用到 fgets, 但不知什么原因,总是出现 某些行首个 字符莫名其妙丢失的问题。
比如 原文件 相邻两行 : void move();
void start_move();
处理过后为:void move();
oid start_move();
代码如下:
char buffer[256];
fgets( buffer, 256, tempfp); // temfp为文件指针。
请教各位,这是哪里出现的问题,是 buffer 的问题嘛? 换用 char *buffer; buffer = new char[256]; 但是还是存在 丢字符现象。
------解决思路----------------------
将对fgetc的调用删掉!
------解决思路----------------------
大家好,小弟用 fgets 处理 .cpp 文件 内容的时候 用到 fgets, 但不知什么原因,总是出现 某些行首个 字符莫名其妙丢失的问题。
比如 原文件 相邻两行 : void move();
void start_move();
处理过后为:void move();
oid start_move();
代码如下:
char buffer[256];
fgets( buffer, 256, tempfp); // temfp为文件指针。
请教各位,这是哪里出现的问题,是 buffer 的问题嘛? 换用 char *buffer; buffer = new char[256]; 但是还是存在 丢字符现象。
------解决思路----------------------
将对fgetc的调用删掉!
while (1) {
fgetpos( tempFp, &pos_here);
if (NULL==fgets( buffer, 256, tempFp )) break;
robot_string = buffer;
memset( buffer, 0, 256 );
if ( robot_string.find( "moveRobot" ) == robot_string.npos
------解决思路----------------------
robot_string.find( "void" ) != robot_string.npos ) {
fprintf( file->FP_fp, "%s\n", robot_string.c_str() );
} else {
break;
}
}
------解决思路----------------------
while (fgets(buffer, 256, tempFp) != NULL) {
// 这句有什么用? fgetpos(tempFp, &pos_here);
// fgets(buffer, 256, tempFp);
robot_string = buffer;
// 这句有什么用?memset(buffer, 0, 256);
if (robot_string.find("moveRobot") == robot_string.npos
------解决思路----------------------
robot_string.find("void") != robot_string.npos)
{
fprintf(file->FP_fp, "%s\n", robot_string.c_str());
}
else {
break;
}
}