关于文件操作的C语言问题

gg882 2009-02-24 05:11:29
这是一个核苷酸配对的程序,我的原文件保存在D:\a.txt 里,我想把翻译后的核苷酸保存在D:\b.txt里,具体应该怎样在下面的程序里面添加啊?谢谢了!
#include <stdio.h>
void main()
{
for (;;)
{
char c = getchar();

if (c == -1)
{
break;
}

if (c == 'A')
{
c = 'T';
}
else if (c == 'T')
{
c = 'A';
}
else if (c == 'C')
{
c = 'G';
}
else if (c == 'G')
{
c = 'C';
}
else
{
fputs("Error input!", stderr);

break;
}

putchar(c);
}
}
...全文
96 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
就是文件打开,读取,写入,关闭几个操作呗,书上都有.
2楼的就可以.
waizqfor 2009-02-24
  • 打赏
  • 举报
回复
直接打开文件 然后开始写就OK了

#include <stdio.h>
void main()
{
FILE* fp = fopen("D:\\a.txt", "r");
if (NULL == fp)
{
return -1;
}
FILE* fp2 = fopen("D:\\b.txt", "w");
for (;;)
{
char c = getchar();

if (c == -1)
{
break;
}

if (c == 'A')
{
c = 'T';
}
else if (c == 'T')
{
c = 'A';
}
else if (c == 'C')
{
c = 'G';
}
else if (c == 'G')
{
c = 'C';
}
else
{
fputs("Error input!", stderr);

break;
}

putchar(fp2, c);
}
fclose(fp2);
fclose(fp);//关闭文件

}
lingyin55 2009-02-24
  • 打赏
  • 举报
回复
up
rabbitlzx 2009-02-24
  • 打赏
  • 举报
回复
FILE* pf = fopen( "D:\b.txt", "r+" );
if( pf )
{
char c;
fscanf( pf, "%c", &c ); //read from file
fprintf( pf, "%s", "some thing you want to store.\n" ); //write to file
fclose( pf ); //
}

另外也可以用fwrite fread等api
msdn上的例子
Example

/* FREAD.C: This program opens a file named FREAD.OUT and
* writes 25 characters to the file. It then tries to open
* FREAD.OUT and read in 25 characters. If the attempt succeeds,
* the program displays the number of actual items read.
*/

#include <stdio.h>

void main( void )
{
FILE *stream;
char list[30];
int i, numread, numwritten;

/* Open file in text mode: */
if( (stream = fopen( "fread.out", "w+t" )) != NULL )
{
for ( i = 0; i < 25; i++ )
list[i] = (char)('z' - i);
/* Write 25 characters to stream */
numwritten = fwrite( list, sizeof( char ), 25, stream );
printf( "Wrote %d items\n", numwritten );
fclose( stream );

}
else
printf( "Problem opening the file\n" );

if( (stream = fopen( "fread.out", "r+t" )) != NULL )
{
/* Attempt to read in 25 characters */
numread = fread( list, sizeof( char ), 25, stream );
printf( "Number of items read = %d\n", numread );
printf( "Contents of buffer = %.25s\n", list );
fclose( stream );
}
else
printf( "File could not be opened\n" );
}


Output

Wrote 25 items
Number of items read = 25
Contents of buffer = zyxwvutsrqponmlkjihgfedcb

太乙 2009-02-24
  • 打赏
  • 举报
回复


原文件保存在D:\a.txt 里,翻译后的核苷酸保存在D:\b.txt里

#include <stdio.h>
#include <file.h>
#include <stdlib.h>
void main()
{

FILE* fp = fopen("D:\\a.txt", "r");
if (NULL == fp)
{
return;
}
FILE* fp2 = fopen("D:\\b.txt", "w");
if (NULL == fp2)
{
return;
}
for (;fp != eof;)
{
char c = getchar(fp);

if (c == -1)
{
break;
}

if (c == 'A')
{
c = 'T';
}
else if (c == 'T')
{
c = 'A';
}
else if (c == 'C')
{
c = 'G';
}
else if (c == 'G')
{
c = 'C';
}
else
{
fputs("Error input!", stderr);

break;
}

putchar(fp2,c);
}
fclose(fp);
fclose(fp2);
}


yeah920 2009-02-24
  • 打赏
  • 举报
回复
不会,帮up

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧