69,368
社区成员
发帖
与我相关
我的任务
分享
/* 标准文档模板 */
#include "Stdio.h"
#include "Conio.h"
#include <sys\stat.h>
#include <time.h>
#include "ctype.h"
#include "stdlib.h"
//#include <windows.h>
//#include "StdAfx.h"
int main()
{
FILE *fpSS;
FILE *fpDS;
int err;
char *str;
char *temp;
system("color 17");
str=(char*)malloc(sizeof(char));
temp=(char*)malloc(sizeof(char));
err=fopen_s(&fpSS,"filess.txt","r");
err=fopen_s(&fpDS,"fileds.txt","w");
if(fpDS==NULL)
{
puts("-fileds.txt- 文件打开错误!!\n");
exit(-1);
}
if(fpSS==NULL)
{
puts("-filess.Txt- 文件打开错误\n");
fputs("源文件打开错误!",fpDS);
exit(-1);
}
while ( fgets(str,100+1,fpSS) != NULL )
{
puts(str); //在这里如何用temp 变换一下,再写入文件?
fputs(str,fpDS);
}
fclose(fpSS);
fclose(fpDS);
getch();
return(0);
}
#include <stdio.h>
FILE *f;
int c1,c2;
int main(int argc,char *argv[]) {
if (argc!=2) {
printf("Usage: CR2CRLF filename\n");
return 1;
}
f=fopen(argv[1],"rb+");
if (NULL==f) {
printf("Can not open file [%s]!\n",argv[1]);
return 2;
}
while (1) {
c1=fgetc(f);
if (EOF==c1) break;
if ('\r'==c1) {
c2=fgetc(f);
if (EOF==c2) {
fseek(f,-1L,SEEK_CUR);
fputc('\n',f);
break;
}
if ('\n'!=c2) {
fseek(f,-2L,SEEK_CUR);
fputc('\n',f);
fseek(f,1,SEEK_CUR);
}
}
}
fclose(f);
return 0;
}
str=(char*)malloc(sizeof(char));
temp=(char*)malloc(sizeof(char));
你这里分配一个字节空间,然后下列代码中一次读一行最长101字节。 你不怕越界访问内存??你这段代码写的问题很大。
while ( fgets(str,100+1,fpSS) != NULL )
{
puts(str); //在这里如何用temp 变换一下,再写入文件?
fputs(str,fpDS);
}
/* 标准文档模板 */
#include "Stdio.h"
#include "Conio.h"
#include <sys\stat.h>
#include <time.h>
#include "ctype.h"
#include "stdlib.h"
#include "string.h"
char* NopEnter(char* str) // 此处代码是抄的, 但是比较 好懂.
{
char* p;
if ((p = strchr(str, '\n')) != NULL)
* p = '\0';
return str;
}
int main()
{
FILE* fpSS;
FILE* fpDS;
int err;
char* str;
char* temp;
system("color 17");
str = (char*)malloc(sizeof(char)*101);
temp = (char*)malloc(sizeof(char)*101);
err = fopen_s(&fpSS, "filess.txt", "r");
err = fopen_s(&fpDS, "fileds.txt", "w");
if (fpDS == NULL)
{
puts("-fileds.txt- 文件打开错误!!\n");
exit(-1);
}
if (fpSS == NULL)
{
puts("-filess.Txt- 文件打开错误\n");
fputs("源文件打开错误!", fpDS);
exit(-1);
}
while (fgets(str, 100, fpSS) != NULL)
{
puts(str);
str = NopEnter(str); //去掉回车
fputs(str, fpDS);
}
fclose(fpSS);
fclose(fpDS);
return(0);
}
str=(char*)malloc(sizeof(char));
temp=(char*)malloc(sizeof(char));
你好像完全不知道这2句代码是干嘛的?