精华内容
下载资源
问答
  • 摘要:VC/C++源码,文件操作,字符串,文本文件 VC++文本文件读取一个字符串,字符串已经内置在文本文件里,在窗体的空白处点击右键可看到效果。
  • num: 最多读取num-1个字符,或者遇到文件结束符EOF为止(即“文件读完了”)返回值; 读取失败时, 返回NULL,读取成功时,返回str #include <stdio.h> int main(void) { FILE *file1; char tmp[64]; ...

    函数原型:
    #include <stdio.h>
    char * fgets( char *str, int num, FILE *stream );
    参数:
    num: 最多读取num-1个字符,或者遇到文件结束符EOF为止(即“文件读完了”)返回值; 读取失败时, 返回NULL,读取成功时,返回str

    #include <stdio.h>
    
    int main(void) {
    	FILE *file1;
    	char tmp[64];
    	
    	char c;
    	
    	file1 = fopen("test.c", "r");
    	
    	while (fgets(tmp, sizeof(tmp), file1) != NULL) { 
    		printf("%s", tmp);
    	}
    	
    	fclose(file1);
    	return 0;
    }
    
    展开全文
  • 读取a.txt中读取一个字符串,排序后写入b.txt文件

    读取从a.txt中读取一个字符串,排序后写入b.txt文件中

    import java.io.BufferedReader;

    import java.io.BufferedWriter;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.util.Arrays;


    /*
     * 已知a.txt文件中有这样的一个字符串:“hcexfgijkamdnoqrzstuvwybpl”
      请编写程序读取数据内容,把数据排序后写入b.txt中。
     
             分析:
             A:把s.txt这个文件给做出来
             B:读取该文件的内容,存储到一个字符串中
             c:把字符串转换成字符数组
             D:对字符进行排序
             E:把排序后的字符数组转换为字符串
             F:把字符串再次写入s.txt中
     */
    public class StringDemo {


    public static void main(String[] args) throws IOException {
    // TODO Auto-generated method stub


    //读取该文件的内容,存储到一个字符串中
    BufferedReader br = new BufferedReader(new FileReader("a.txt"));
    String line = br.readLine();
    br.close();

    //把字符串转换为字符数组
    char[] chs = line.toCharArray();

    //对字符数组进行排序
    Arrays.sort(chs);

    //把排序后的字符数组转换为字符串
    String s = new String(chs);

    //把字符串再次写入a.txt
    BufferedWriter bw = new BufferedWriter(new FileWriter("b.txt"));
    bw.write(s);
    bw.newLine();
    bw.flush();

    bw.close();
    }

    }
    展开全文
  • KMP子串大写替换主对应位置。 在这里插入代码片 #include <stdio.h> #include <string.h> #define max 25536 int c_next[max]; int v[max] = {0};//用于代替vector的用法 void pipixia(char *ptr);//...

    即``KMP子串大写替换主串对应位置。
    有个学弟问我的,随手写写
    注释还算全

    #include <stdio.h>
    #include <string.h>
    #define max  25536
    int c_next[max];
    int v[max] = {0};//用于代替vector的用法
    
    void pipixia(char *ptr);//皮皮虾函数天下第一!!!
    int kmpSearch(char *a,char *b,int length1,int length2);
    
    /*算法分析
    @先匹配出那些地方从前往后按顺序可以获得子串位置
    @对相应的可能错误录入进行鲁棒性处理
    @生成子串的大写状态,注意不要有大写字母又-32的情况
    @用生成的串替换子串在主串出现的位置
    @将生成的最终final串输出到文件中
    */
    
    void pipixia(char *ptr)//生成next的皮皮虾函数
    {
        int n = strlen(ptr);
        int k = -1;
        int i = 0;
        c_next[0] = -1; //初始化第一位,以防无匹配情况
        while(i < n)
        {
            if(k == -1 || ptr[i] == ptr[k]) // k=-1用于指针i的移动
            {
                i++;
                k++;
                c_next[i] = k;
            }
            else 
        	   k = c_next[k];
        }
    }
    
    int kmpSearch(char *a, char *b,int length1,int length2) //匹配ab两串,a为父串
    {
        int i = 0, j = 0,count=0;
        pipixia(b); //生成next数组
        while(i < length1)
        {
            if(j == -1 || a[i] == b[j])
                i++, j++;
            else
                j = c_next[j];
            if(j == length2)//完全的匹配成功了
            {
                v[count]=i-strlen(b);//将初始位置置入vector
                j = 0; //还原j的位置,初始化
                count++;
            }
        }
        return count;
    }
    
    int main ()
    {
    	char filename[max];//文件名
    	char buff[max];//读取的文件主串
    	char sbuff[max];//录入想要读取的子串
      
    	printf("请输入字符文件名:");
    	scanf("%s",filename);
    	FILE *file1=fopen(filename,"r");
    	if(!file1)
    	{
    		printf("File not found.\n");
    		return 0;
    	}
    	fscanf(file1,"%s",buff);
    	printf("%s\n",buff);//测试文件是否成功读入
    
    	printf("请输入一串英文字母\n");
    	scanf("%s",sbuff);
    	/*printf("%s\n",sbuff);//测试字母是否成功读入*/
    
    	int len1 = strlen (buff);//主串长度
    	int len2 = strlen (sbuff);//子串长度
    	/*printf("%d %d\n",len1,len2);测试对应的长度是否正确录入*/
    
    	if(len1 < len2)//容错判断
    	{
    		printf("子串长于主串,不进行比较\n");
    		fclose(file1);//关闭文件
    		return 0;//退出程序
    	}
    
        char Capsbuff[max];//子串字符大写
        while(len2+1)
        {
            if(sbuff[len2]>='a'&&sbuff[len2]<='z')//如果录入的是小写字母,则将此小写字母变为大写
                Capsbuff[len2]=sbuff[len2]-32;
            len2--;
        }
        //printf("%s\n",Capsbuff );//测试是否成功转化为大写字母
        //到此准备工作完成
    
        int size = kmpSearch(buff,sbuff,len1,len2);//调用函数进行模式匹配,并求出对应v的容量
        /*由于是c无法调用vector函数*/
       // printf("%d\n",size );检验size是否正确
    
        char final[max];
        int p=0,q=0;
        for (int i = 0; i < size ; ++i)
        {
            int L_next = v[i]; //取出下一个需要替换的位置
            while(p < L_next)
                final[q++] = buff[p++]; //将之前不需要替换的位置进行拼接
            for (int j = 0; j < (int) strlen(Capsbuff); ++j)
                final[q++] = Capsbuff[j]; //替换掉字符串
            p += strlen(sbuff); //重新置位置
        }
    
        while(p<(int) strlen(buff)) //将最后的也放进去
            final[q++] = buff[p++];
        final[q]=0;
        //puts(final);//测试用控制台显示
        //printf("一共替换了%d次!\n", size);检验替换次数
    
        /*写入文件*/
        printf("请输入输出文件名:");
        scanf("%s",filename);
        FILE *file2=fopen(filename,"w+");
        fputs(final,file2);
        printf("写入%s文件成功\n",filename);
        fclose(file2);
    	fclose(file1);
    
        return 0;
    }
    
    
    
    
    展开全文
  • 从文件读取所有文本这是Java 7的一个紧凑,健壮的习惯用法,包含在一个实用程序方法中:staticStringreadFile(Stringpath,Charsetencoding)throwsIOException{byte[]encoded=Files.readAllBytes(Paths.get(path));...

    从文件中读取所有文本

    这是Java 7的一个紧凑,健壮的习惯用法,包含在一个实用程序方法中:static String readFile(String path, Charset encoding)

    throws IOException {

    byte[] encoded = Files.readAllBytes(Paths.get(path));

    return new String(encoded, encoding);}

    从文件中读取文本行

    Java 7添加了一种方便的方法来将文件读取为文本行,表示为List。这种方法是“有损的”,因为行分隔符从每行的末尾剥离。List lines = Files.readAllLines(Paths.get(path), encoding);

    Java 8添加了Files.lines()生成a 的方法Stream。同样,这种方法是有损的,因为剥离了行分隔符。如果IOException在读取文件时遇到a,则将其包装在一个中UncheckedIOException,因为Stream不接受抛出已检查异常的lambdas。try (Stream lines = Files.lines(path, encoding)) {

    lines.forEach(System.out::println);}

    这Stream确实需要一个close()电话; 这在API上记录很少,我怀疑很多人甚至没有注意到Stream有一种close()方法。请务必使用ARM块,如图所示。

    如果您使用的是文件以外的源,则可以使用该lines()方法BufferedReader。

    内存利用率

    第一种保留换行符的方法可以暂时需要几倍于文件大小的内存,因为短时间内原始文件内容(一个字节数组)和解码后的字符(即使编码也是16位)因为文件中的8位)一次驻留在内存中。最安全的方法是应用于您知道相对于可用内存较小的文件。

    读取行的第二种方法通常更有效,因为用于解码的输入字节缓冲区不需要包含整个文件。但是,它仍然不适合相对于可用内存非常大的文件。

    对于读取大型文件,您需要为程序设计一个不同的设计,一个从流中读取一块文本,处理它,然后继续下一个,重用相同的固定大小的内存块。这里,“大”取决于计算机规格。如今,这个阈值可能是几千兆字节的RAM。Stream如果您的输入“记录”恰好是单独的行,则使用a的第三种方法是这样做的一种方法。(使用readLine()方法BufferedReader是程序等同于这种方法。)

    字符编码

    原始帖子中的示例中缺少的一件事是字符编码。在某些特殊情况下,平台默认值是您想要的,但它们很少见,您应该能够证明您的选择。

    在StandardCharsets类中定义的所有Java运行时所需要的编码的一些常量:String content = readFile("test.txt", StandardCharsets.UTF_8);

    该平台默认可从该Charset类本身:String content = readFile("test.txt", Charset.defaultCharset());

    注意:这个答案很大程度上取代了我的Java 6版本。Java 7的实用程序安全地简化了代码,使用映射字节缓冲区的旧答案阻止了读取的文件被删除,直到映射的缓冲区被垃圾收集。您可以通过此答案中的“已编辑”链接查看旧版本。

    展开全文
  • 本文然后提供一个简单示例,说明如何自定义本地化,以便文本文件读取本地化字符串。 实施全球化和本地化 国际化涉及全球化和本地化。 全球化是设计支持不同区域性的应用程序的过程。 全球化添加了对一组有关特定...
  • 从文件读取一字符串,并统计里面单词的数量—java 在做的过程中出现的一些问题: 从文件中读取应该怎么表达 import java.io.*; //要抛出异常,因为文件也许不存在 FileReader in=new FileReader(test.txt);//...
  • 不想改,给楼主个新的,以前写的,改了一点,凑合能用,具体就是输入文件名后(要加全路径),就会在此文件的文件夹下生成一个文件,里面放着结果import .*;import .*;public class acm_problem {private String ...
  • 最近需要做一个操作:就是一个文件读取一个字符串,理论上的操作顺序应该是: 现读取这个文件,然后一行一行读,看是否有我需要的那个字符串。应该是利用文件流来操作~ ...
  • c++从文件读取数据到字符串

    千次阅读 2012-03-28 23:41:58
    C++中利用ifstream来读文件,例如:ifstream in...如何把一个文本文件一次行读到一个string对象中,方法有两种: std::ifstream in("some.file");  std::istreambuf_iterator beg(in), end;  std::string st
  • import turtle from turtle import Turtle def huizhi(str): p=Turtle() p.pensize(5) p.speed(5) for i in range(len(str)): p.forward(str[i][0]) if str[i][1]==0: p.left(str[i][2]) ...p.right(str[i][2]...
  • txt文件中逐行读取字符串字符串转换成整型的数值 把整形的数值赋值给一个点的横坐标和纵坐标 在一张图片上画矩形 opencv的使用 文件读取过程 2.代码说明#include #include #include using namespace s
  • 摘要PHP判断字符类型:PHP判断字符类型 php 从文件读取匹配条件字符串:案例描述:找出文本文件(input.txt)中所有符合下面条件的字符1. 是一个小写字母,并且2.两侧各有且只有三个大写字母(考虑换行符) 例如...
  • 在C#中,StreamReader的ReadLine方法是不支持...所以我们这里采用一个.NET Core控制台项目,自定义一个ReadLineWithDelimiter扩展方法,演示使用自定义的行分隔符,StreamReader中读取一字符串,代码如下:using...
  • 从文件读取字符串总结

    千次阅读 2011-05-18 10:31:00
    从文件读取字符串: fscanf 1.遇到空格和换行等不可见字符结束,不会读入换行符,末尾添加'/0' 2.两行中间的一个空行或多个空行不会读入 3.当文件末尾有一个空行或多个空行时会读一次,但不会读入任何内容,目标字符...
  • 1、每次从文件中读出一行作为一个字符串 可以用ifstream()函数来打开一个文件,然后用while加getline()函数即可每次读一行文件,直到文件结束 #include<unistd.h> #include<fstream> #include<...
  • php 从文件读取匹配条件字符串

    千次阅读 2016-06-20 11:35:26
    案例描述: 找出文本文件(input.txt)中所有符合下面条件的字符 1. 是一个小写字母,并且 2.两侧各有且只有三个大写字母(考虑换行符) 例如xAAAbAAAd中的b ...再创建一个php文件 代码如下: head
  • 时,作者给出了glsl文件读源码的程序,再动手做实验后发现了一点小关乎C++底层的stl::string底层实现机制在string到C字符串的小问题。 源代码是这样写的,它包含在整个cpp文件中: 而我为了提高后续实验这段...
  • 首先从文件“data.txt”中读取字符集,并识别出字符集中的每一个字符。假设字符集的总字符数为n,利用这个n个字符组成长为n的字符串。其中每个字符均可重复使用,每个字符串中也不必包含全部字符。试求出所有长为n的...
  • 2 //从文件读取包含数字和字母字符串,统计每个字符出现的次数 3 //输出格式,字符:次数并输出到另外一个文件 4 //需要在D盘下新建文件text.in 5 #include<stdio.h> 6 #include<stdlib.h> 7...
  • 我的第一个问题是我的程序错误地读取了我的一行,并忽略了变量的第一个字母,第二个问题是我不知道如何使我的程序在同一行读取个字符串并将它们分配给不同的变量.System.out.println("Input the file name of the ...
  • 首先,先了解两个函数:printf和sprintf,一个是写入stdout中,一个是写入到字符串s中。printf——格式化字符串FORMAT,把格式化的输出内容写到标准输出设备(stdout)中;sprintf——格式化字符串FORMAT,把格式...
  • 直接贴代码: 游戏开发群:44727718 如果缺少什么函数,请给下看。。 1 string HSReadData::ReadUTF8() 2 { 3 4 int utflen = ReadShort() & 0xffff; 5 wstring str;... 7 ...
  • 1.分割数据:从文件中截取每段以某字符结尾的数据,可以将该将文件中的数据与分割字符串读取字符串数组中,循环文字字符数组同时与字符串数组进行对比。如连续几个字符全部满与字符串数组相同则满足截取条件。 2...
  • 文本文件读取个字符串(空格或者换行符隔开),用链表存储,要求输入一个子串,在结点中的单词(字符串中)查找子串,以及在相邻字符子串中查找子串,返回子串所在单词的位置,以及该单词的第几个位置开始。...
  • 数据 aaaaaa 存在e:\abc.txt中 怎么把它读入程序,并且复制给字符串data,请给出源程序。谢了
  • C++ 使用getline读取一字符串

    万次阅读 多人点赞 2015-10-03 19:50:58
    刷一道水题的时候,看到了这用法,因为喜欢C++风格,就没有用gets或者fgets来读取一字符串。 这里介绍c++里面常用读取一字符串的用法 getline()函数 getline(istream &in, string &s) 输入流读入...
  • 我之前是从文件中直接使用getline直接读取的,现在想从TextEdit中读取,应该怎么写? 要和getline一个效果的
  • //这里需要注意,linux平台下一个目录中有"."和".."隐藏文件,需要过滤掉 if ( p -> d_name [ 0 ] != '.' ) //d_name是一个char数组,存放当前遍历到的文件名 { struct stat sb ; std : : string...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,478
精华内容 1,391
关键字:

从文件读取一个字符串