ofstream outtemp1("temp1.txt", ios::out);//定义一个输出流对象outtemp1,就是可以向temp1.txt这个文件写数据
ofstream outData("temp.txt", ios::out);//定义一个输出流对象outData,,就是可以向temp.txt这个文件写数据
ifstream indata("Personal system of accounting.txt", ios::in);//定义一个输入流对象 indata,可以从
Personal system of accounting.txt这个文件中取出数据
if (!outData || !indata) //通过判断文件流对象的返回值判断文件是否存在。这里少了一个"||!outtemp1"
{
cout <
return; //退出
}
程序有问题的,连分号都没有
如果是,那么
void
catstr(char*dest,char*src)
{
while(*dest)
//如果括号里的内容不等于0,就执行下文。这个是标准的循环了
//什么时候停止循环呢?当dest指针指向的内容为0的时候才停止。
dest++;//这里是循环的内容,每一次循环,都要把dest加1,
//因为dest是个指针,这么操作的后果就是,如果dest本来指向某个字符串的开头
//那么,在这里每一次循环,dest就指向字符串的下一个字符
//直到字符串结束了,结果为0,这个循环就结束了
//此时dest正好指向字符串末尾的下一个单元,其内容现在为0,空的
while(*dest++=*src++);//开始第二个循环,同样的,只要内容不等于0,就会不断执行下去
//
这个循环没有循环内容,因为真正要做的就是括号内的事
//每次循环,都把src指针当前指向的那个数(字符)复制到dest指针当前指向的单元去
//不要忘了,第一个循环结束时,dest指向的是某个字符串的末尾,假设是字符串A
//假设src指向字符串B,那么现在每循环1次,都从src指向的字符串B里复制一个字符到A的末尾
//比如A字符串为“hello”,B字符串为“came”
//那么,第一个循环结束时,dest指向字母o后面的单元,src指向字母c
//第二个循环开始时,首先把字母c复制过去了,就变成“helloc”
//然后呢,dest和src都++,自增了,加1
//此时,dest指向“helloc”中字母c后面的一个单元。src指向字母a
//所以下次循环,字符串A就变成了“helloca”,然后两个指针又往后移动一位
//一直到字符串B都复制过去了,此时再次循环时,src指向空单元了
//于是dest就变成了0,那么,第二个循环结束。
//结束时,字符串A=“hellocame”,字符串B没有变化。dest指向字母e后面的那个空单元,
//src指向'came"后面的那个空单元
}
说得够详细了,结果当然和一楼是一样的,就是字符串B整个被复制到了字符串A的后面,也就是两个字符串被合并了