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

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

无法读文件 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值