#include <string.h>
char str[100]
char search[100]
scanf("%s", search) //输入待查串
fp=fopen("ur_file.txt", "r")
while( fgets(str, sizeof(str), fp) )
{
if ( strstr( str, search) )
printf("%s", str )
}
fclose(fp)
问题1,为什么不能直接用流 jun ,而是要创建一个readhai,在接下来用strstr查找readhai?
解答:你可以理解成流只是固定的一段内存,打开文件以后,文件会加载到这段内存里,但不是整个文件加载,而是加载一部分,所以文件流需要顺序读写,或者重新定位,这样,才知道这段内存保存的是文件的哪个部分,通俗点说,这个是水龙头,你能通过水龙头放水。
你要使用文件的一部分(字符串或者一段文字),那么你必须将这个段文字拷贝出来,或者读出来,保存到你自己的存储空间里,这里是拷贝到一个数组里,然后再使用这个字符串,通俗点说,这个是把水龙头的水接到杯里,然后你可以处置这杯水了。
问题2,能告诉一下while循环里的编辑思路嘛
解答:while里是循环读一个字符串,然后比较这个字符串是不是与函数参数的字符串相同,相同就输出,不相同就继续读,直到文件结束。这个就像水龙头接在酒桶上,酒里还泡着几个枸杞,你接一杯水,检查一下有没有枸杞,有就挑出来(输出),没有继续接下一杯,直到酒桶里没有酒了。
你这个是c++的如果是c++
#include <fstream>
#include <string>
#include <iostream>
using namespace std
void main()
{
string name
ifstream infile
cin >>name
infile.open(filename.c_str(), ios::in|ios::out)
if(!infile)
{
cout <<"open file failed"<<endl
return
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)