VS2013 的动态数组 可变长数组怎么不支持?

Adonis321 2016-03-13 11:53:39

如图?难道vs2013也不支持C99?

如果不支持,那要怎么才能实现?求助大神!
...全文
809 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
paschen 版主 2016-03-13
  • 打赏
  • 举报
回复
C语言中C99标准是支持的 但C++中没有,可以考虑使用STL中的vector、list等容器代替
yshuise 2016-03-13
  • 打赏
  • 举报
回复
不支持,但是c++的模板支持呀
Adonis321 2016-03-13
  • 打赏
  • 举报
回复
我自己编的 看看还有什么别的方法?就是想让从键盘上输入,01110000111.在转换。求大神。。

#include<iostream>
#include <string>
#include <fstream>
#include <sstream>
using namespace std;


int main(void)
{
long double sum = 0;
int h = 0;
ifstream in("a.txt");
if (in.good()) cout << "文件打开成功\n";


for (string s; getline(in, s);)
{
h++;
long double sum = 0;
if (s == "-1")
break;
int k = s.length();
//char a[s.length()];//好像vs2013不支持c99 可变长数组 不支持!!!!
char *a = (char *)malloc(k);
//strcpy(a, s);//error C2664: “char *strcpy(char *,const char *)”: 无法将参数 2 从“std::string”转换为“const char *”
cout <<"第"<<h<<"行的二进制位数为: " <<s.length() << endl;
cout << "数据如下 :\n";
cout << s << endl;
cout << "转换成的十进制数为: ";
const char *ss = s.c_str();
strcpy(a, ss);//已经将ss中的字符串赋值给了数组a[]

//cout << a[5]<< endl;
//*下面进行二进制转换*/

for (int i = s.length() - 1,j = 0; i > 0;--i,j++)
{
int b = a[i];
sum = sum + (b-48) * pow(2, j);

}
cout << sum << endl;
}

in.close();
}


文本内容:

运行结果:
bsnry 2016-03-13
  • 打赏
  • 举报
回复
引用 3 楼 wang268218 的回复:
引用 1 楼 yshuise 的回复:
不支持,但是c++的模板支持呀
什么模板?
std::vector
Adonis321 2016-03-13
  • 打赏
  • 举报
回复
引用 1 楼 yshuise 的回复:
不支持,但是c++的模板支持呀
什么模板?

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧