编程就是拼积木,轮子:文本文件读写

来源:互联网 发布:企业级软件 编辑:程序博客网 时间:2024/04/28 10:28

文本文件读写,存在问题:

无法读文件 iftream ,从文件读出一行,然后换行,如果字符串有空格在中间,就会出现问题,比如“let's start coding the world”,就只能读出let's (遇到空格就没办法了)

hello world 中间的是空格而不是\0空格和字符是一样的ASCII里的空格是32
http://blog.csdn.net/ouczoe/article/details/4923439(读一行主要参考文献)

还有用getline似乎也是这样:

string 中用 getline() 先读一行,似乎也只能这样,c++自动完成,
char str[100];ifstream ifile;ifile.open("/***********/");ifile.getline(str,100);cout<<str<<endl;
#include<stdio.h>void main(){ char a[100]; int i=0; gets(a); while(a[i]!='\0'); {  a[i]= ;  i++; } printf("%d",i+1);}有个错误是D:\C++程序\英文单词.cpp(9) : error C2059: syntax error : ';'
输入的空格实际为一个ASC字符,若编程时直接输空格,编译程序会直接无视的。可以转化字符嘛。a[i]=chr(32).
曾经看到一个输入输出代码是这样的:cin>>a[i];cout<<endl;

endl还有一个更重要的意思,就是清空流缓存,把缓存的内容全部传递到设备中。如果你学过C语言的标准输入输出你就会知道。C语言的标准输入输出有两种:有缓存的和无缓存的。举个例子,getc这个函数,就是有缓存的,他有一个静态变量,属于这个函数,保存所有数据,当数据中出现\n的时候,才把数据逐个字符返回到参数中。无缓存的就是读到一个字符就返回一次。C++虽然没有这些接口,但是在底层的实现上,使用的系统调用,是一样的。所以有时候,如果你不用endl,就不会得到结果
///////////////////////////////////////////////////////////////////////////////////////////////////////////////

int* modifier = const_cast<int*>(&constant);

/////////////////////////////////////

auto i1 = Container.begin();  // i1 is Container<T>::iterator auto i2 = Container.cbegin(); // i2 is Container<T>::const_iterator 1.iterator,const_iterator作用:遍历容器内的元素,并访问这些元素的值。iterator可以改元素值,但const_iterator不可改。跟C的指针有点像2.const_iterator 对象可以用于const vector 或非 const vector,它自身的值可以改(可以指向其他元素),但不能改写其指向的元素值.
//////////////////////////////////////

map使用基本介绍:

map以及类似指针iterator:http://blog.csdn.net/xiaoxiaoniaoer1/article/details/7929795

//////////////////////////////////////

list使用样例http://bbs.csdn.net/topics/300179759


0 0
原创粉丝点击