是否有Visual c++编译器在线,以及如何在c++和vs简单代码之间转换

Is there a Visual c++ compiler online and how convert between c++ and vs simple code

本文关键字:c++ vs 简单 代码 转换 之间 编译器 Visual 在线 是否      更新时间:2023-10-16

将这类代码转换为VS2010(在检查之前我必须知道)有什么特别的问题吗

是否有任何在线VS2010编译器?

assert(false);做什么

示例

    int applyOperator(Operator op,int x,int y)
{
  switch (op) {
    case operator_plus:  return x+y; // jesli operator_plus zwroc x + y itd.
    case operator_minus: return x-y;
    case operator_mul: return x*y;
    case operator_div: return x/y;
    case operator_none:
      break;
  }
  assert(false);
  return 0;
}

#include <iostream>
using namespace std;
#include <iostream>
#include <string>
class Student {
public:
    string Name, ID, Gender, BirthDate, Major;
    friend istream& operator >> (istream& in, Student& s); //DEKLARACJA przeciazenia operatora >> tak bay wczytywal dane linia po linii
    friend ostream& operator<< (ostream&,Student const&);  //DEKLARACJA przeciazenia operatora << tak aby wypisywal obiekty typu Student
};

   istream& operator >> (istream& in, Student& s){
    cout << "Namen";
    getline (cin,s.Name); //wczytanie linii na imię
    cout <<"IDn";
    getline (cin,s.ID);   //wczytanie linii na ID
    cout <<"Gendern";    
    getline (cin,s.Gender);
    cout <<"BirthDaten";
    getline (cin,s.BirthDate);
    cout <<"Majorn";
    getline (cin,s.Major);
    return in;
    };
ostream& operator<< (ostream &wyjscie, Student const& ex)
{
   wyjscie<<""<<"Name:t"<<ex.Name<<"n"<<
    ""<<"Student ID:t"<<ex.ID<<"n"<<
    ""<<"Gender:t"<<ex.Gender<<"n"<<
    "BirthDate:t"<<ex.BirthDate<<"n"<<
    "Major:t"<<ex.Major<<endl;
    return wyjscie;
}

int main(){
        Student s;
        cin>>s;
        cout<<s;
        return 0;
}

断言什么(错误);做

它打开一个断言窗口。这是一种机制,可以让程序员知道不应该到达的控制路径何时到达,或者不应该失败的条件何时到达。

基本上类似:

int divide10ByX(int x)
{
   if ( x == 0 )
   {
      assert(!"x can't be 0");
      return 0;
   }
   return 10/x;
}

x0时,程序通常会崩溃。通过预先检查,可以防止崩溃,但可以隐藏一些错误的功能,因为x不应该是0。因此,只要x为0,就在那里放置一个断言来通知您。

可替换地,它可以是assert(x),它仅在x==0时触发。

由于Visual Studio是一个商业产品,我想除非微软提供这样的功能,否则你不太可能遇到免费的在线VC++编译器。

assert宏用于验证真布尔条件。这通常是为了在开发代码时验证预期条件,作为合同设计或类似内容的一部分,并且是从生产代码中编译出来的,即在禁用调试时。

遇到false条件将导致消息输出到stderr,并调用abort()。因此,assert(false)只是简单地迫使代码(在调试中)在某个点中止。

如果在购买完全许可的编译器之前,您想要"在线编译器"是一个"免费"编译器,那么您可以使用Visual Studio Express。它完全可以满足大多数基本需求。