从文件读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
如果是没有分配内存的话,为什么一开始就读字符串就可以,而先读整型再读字符串就不行呢
相关问答:
编译普通的c没问题啊,但编译javah生成的就报错:
gcc -O0 -g3 -Wall -c -fmessage-length=0 -oHelloWorld.o ..\HelloWorld.c
gcc -otest.exe HelloWorld.o
d:/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../. ......
为什么C写的DLL文件C、PB能调用VB不能调用?
VB里为什么有的DLL直接通过引用可以使用?有的需要通过declare申明外部函数?这些DLL有什么差别?
1、为什么PB能通过DECLARE声明而VB不行?
2、如果这个dll中的 ......
大家好!我是一位C爱好者,向大家请教下,C程序员可好找工作?公司用C干些什么?
无所谓好不好找工作,一般通信、系统、嵌入式、硬件方面用的多,而且由于C的底层特性,学会后在学其他的会比较容易
不管用什么语 ......
功能是实现字符串的翻转,不知道哪里有错误,请指教
#include <iostream>
#include <stdio.h>
using namespace std;
void reverse()
{
char ch;
scanf("%c",ch) ......
#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", ......