比如说,我要在data.txt搜索一个名为data的字符串,并把它修改为_data,如何实现这样?
data.txt文件的内容如下:
oh, hello!
please can you save this data?
you!
如何把data改成_data?
ããå¯ä»¥ä½¿ç¨fseek()æ¥æå®æ件ä½ç½®ã
ããå½æ°ååï¼int fseek(FILE *stream, long offset, int fromwhere);
ããå½æ°è¯´æï¼å½æ°è®¾ç½®æ件æéstreamçä½ç½®ãå¦ææ§è¡æåï¼streamå°æå以fromwhereï¼å移起å§ä½ç½®ï¼æ件头0(SEEK_SET)ï¼å½åä½ç½®1(SEEK_CUR)ï¼æ件尾2(SEEK_END)ï¼ä¸ºåºåï¼å移offsetï¼æéå移éï¼ä¸ªåèçä½ç½®ãå¦ææ§è¡å¤±è´¥(æ¯å¦offsetè¶ è¿æ件èªèº«å¤§å°)ï¼åä¸æ¹åstreamæåçä½ç½®ã
ããè¿åå¼ï¼å¦ææ§è¡æåï¼streamå°æå以fromwhere为åºåï¼å移offsetï¼æéå移éï¼ä¸ªåèçä½ç½®ï¼å½æ°è¿å0ãå¦ææ§è¡å¤±è´¥(æ¯å¦offsetè¶ è¿æ件èªèº«å¤§å°)ï¼åä¸æ¹åstreamæåçä½ç½®ï¼å½æ°è¿åä¸ä¸ªé0å¼ã
ãã示ä¾ï¼åtest.txtçæ«å°¾æ·»å âthis is a text"çå符串ã
ã #include <stdio.h>我是要嵌在程序里面,你能提供单独的代码给我吗?万分感激!
追答是写成函数吗?
#include"stdio.h"
#include
int alpa(char x)
{
return x>='a'&&x='A'&&x<='Z';
}
int runme()//调用这个函数就行了
{
char s[1000],tmp[100];
int i,j;
freopen("C:\\data.txt","r",stdin);
freopen("C:\\data1.txt","w",stdout);
while(gets(s))
{
for(i=0;s[i];i++)
{
if(alpa(s[i])&&(i==0||!alpa(s[i-1])))
{
j=0;
while(s[i]&&alpa(s[i]))
{
tmp[j++]=s[i];
i++;
}
i--;
tmp[j]=0;
if(strcmp("data",tmp)==0)
{
printf("_%s",tmp);
}
else printf("%s",tmp);
}
else putchar(s[i]);
}
puts("");
}
return 0;
}
谢谢,不过我要尝试了之后才能给你分,望谅解!
本回答被提问者和网友采纳C语言如何将一行文本插入到文本文档的特定一行
include <stdio.h>#include <stdlib.h>#include <string.h>#include <conio.h>#include <Windows.h>\/* 读出文件放到数组中,新增数据插入到该数组中; 重新将数组中的数据写入该文件中*\/void main(int argc,char * agrv){ FILE *fp; char name[20]; \/\/输入变量 int sum; ...
c语言怎么保存文件到指定的路径?
fp=fopen(filename,"wb");\\x0d\\x0a里的filename就表示了文件的路径及文件名,所以要把输入的文件名和文件路径拼接起来,计算出这个filename\\x0d\\x0a最好过滤一下别让路径和文件名中有非法字符,比如:\\\/+什么的。\\x0d\\x0ascanf也限制一下长度。\\x0d\\x0ascanf("%19s",filename);\\x0...
C语言中要在某个文件中追加内容怎么实现
如果是源文件就有内容,要配合fseek()用,先将文件指针指向文件末(‘你好’后),再用fopen()打开,参数用a+.如果没有内容,向文件写时候就可以a+,但是下次打开时,文件指针在文件的开头。你先试试。还用我建议你不要这么做,文件指针很容易出错,也不好操作,可以直接用操作文件的基本几个步骤做...
C语言如何在在指定位置加入内容!?
你是没有办法直接在文件中插入一个内容的,只能从位置6处开始,先把6后面的内容都读出来,然后写入7,然后再把之前读出来的内容写入。看我下面的代码。 总结,要在文件中位置N处插入内容,必须先把N以后的内容都读出来,然后再写入要插入的内容,然后再把之前读出的内容写入文件。include <stdio.h> ...
用c语言如何把文件复制到指定文件夹
不妨可以定义一个指针 比如char *p="";scanf("%s",p);fp=fopen(p,"r");这样就可以通过scanf自己输路径了 思路就是fp=fopen("abc.txt","r");等价于char *p="abc.txt";fp=fopen(p,"r");里面可能还有些技术上的问题,稍加修改一下,应该没问题吧 ...
C语言创建文件到指定文件夹
源代码如下:include "stdio.h"include "conio.h"include "dir.h"int main(){ int status;status=0;status=mkdir("D:\\mydir");printf("status=%d",status);getch();return 1;}
C语言怎么写数据到文件指定位置?(覆盖原有数据)
举个例子吧 我在网吧没发给你打代码 一个文本里面存着 "123456"一句话 你想把它从3以后改成"abc" 就是"123abc"首先要读入这个文件然后把123存到一个数组中然后将123与abc相连接(这个你总会了吧)最后将这个字符串在写出 就搞定了 ...
C语言编的程序怎么保存到指定文件夹?谢谢```
fopen=("c:xx.txt","a+")不知道你说的什么意思,不过如果是打开文件然后写的话 把fopen后面的两个参数写上就ok 了.第一个是文件路径 底二个是打开方式,我用的是追加写,就是如果没有文件就新建一个,有就写在文件尾
求助C语言 文件在任意位置写入数据
*stream, long offset, int fromwhere);函数可以将文件指针指到任意位置,然后再进行文件操作读写就可以了 是只能覆盖,不能在文件中间插入数据的。如果非要这样实现,那么只有自己将插入点之后的数据保存起来,先覆盖原有数据,再将保存的数据追加到最后。你的串号我已经记下,采纳后我会帮你制作 ...
如何把c语言中输出的数据保存到一个文件夹中?
1、首先,可以先查看整体代码,了解保存整体框架。2、然后,定义一个文件指针,指向文件。3、接下来就可以先对控制台清屏幕。4、此时,就可以开始使用保存的命令语句。5、还能对屏幕适当的等待。6、最后记得关闭文件的打开。7、打开保存为这个页面,并选择好路径。8、然后点击保存类型。9、然后找到文件名...