从文件读C串的问题
定义了
ifstream fin("in.txt");
比如文件首行是一个数字,第二行是一串字符。
int M;
char* str;
fin>>M;
fin>>str;
M可以读出来,str总是无法读取,就报错了。
如果不读M,一开始就是读字符串的话也可以,但先读一个整型再读字符串就不行了。
为什么呢
str你得先分配内存。
你的str没有申请空间。
试试char* str;
str=new char[100];
fin>>M;
fin>>str;
delete []str;
估计是M后面跟了空格,你只读出来一个空格。。
分配内存
或者你可以用
string str;
fin>>str;
可是我无论是用new char[]还是用malloc分配,运行的时候就会出现
DAMAGE: after Normal block (#157) at 0x00384FB8
如果是没有分配内存的话,为什么一开始就读字符串就可以,而先读整型再读字符串就不行呢
相关问答:
13个人围成一圈,从第一个人开始顺序报号1,2,3。凡报到3者退出圈子,找出最后留在圈子中的人原来的序号
结果应该是13 可我的程序的结果是11 希望好心人帮改一下
#include <stdio.h>
#include < ......
6月5日消息,XX网站日前评出了10项大势已去的计算机技术。其中,有些技术已经被淘汰,有些即将被淘汰。如著名的Cobol语言,以及IBM的OS/2系统。
以下为XX网站评出的被淘汰的10项计算机技术:
......
'\108'作为字符常量对不对?
转义字符'\ddd'表示3位8进制所代表的字符。 但是108不是正确的8进制表示方法,因此应该是错误的。
但是char a='\108'; 为什么编译不出错呢?
\108 没超过 ......
#include <stdio.h>
main()
{
int a,b,sum;
a=1;b=2;
sum=a+b;
printf("sum is %d\n");
}
结果是:2367460
为什么?
printf("sum is %d\n", ......