C语言初学者IDE——cygwin

    开始想学C语言,找了好多IDE结果都不理想,各种原因,最后使用了cygwin编译,其实其他的也挺好用,只不过我是个菜鸟。

安装请参考http://www.programarts.com/cfree_ch/doc/help/UsingCF/CompilerSupport/Cygwin/Cygwin1.htm

如果报什么new file 那是因为源代码最后没加回车

如果报cygwin1.dll未找到的话,那是因为环境变量未设置正确,当然也可能是其他原因。cmd-path 如果有.......cygwin/bin就不是环境变量的问题

 

http://bbs.csdn.net/topics/80281529

 

     FILE *fp1;
    

     FILE *fp2;
    

     for (int i=0;i<10;i++)
     {


      char a[]="what is your name\n";
      char b[]="bbbbbbbbbbbbbbbbb\n";
      if (fp1==NULL)
      {
       return;
      }
      if (fp2==NULL)
      {
       return;
      }
      fp1=fopen("bbb.txt","a+");
      fp2=fopen("bbb.txt","a+");

      fwrite(a,sizeof(a),1,fp1);
      fwrite(b,sizeof(b),1,fp2);

     }

 

    


     fclose(fp1);
     fclose(fp2);
     button1->Text="2222";

 

 

    当使用C++/CLI包装C++本地代码时,常常需要将System::String转换为std::string或者char*以调用native C++函数。.net环境中的字符串是unicode的,占2个字节,而很多native C++函数都没有考虑unicode,这种转换不仅仅是2字节转1字节,同时也涉及到字符集的转换。

    在有些文档中提到用wcstombs进行宽字符到多字符的转换,但是经过试验,这种方式在C++/CLI代码中处理中文时会失败。在System::Runtime::InteropServices名字空间里的Marshal类提供了另外一种方式(StringToHGlobalAnsi)进行这种转换,msdn中说道:“将托管 String 中的内容复制到非托管内存,并在复制时转换为 ANSI 格式。StringToHGlobalAnsi 对于自定义封送处理或者在混合托管和非托管代码时很有用。由于该方法分配字符串所需的非托管内存,因此应始终通过调用 FreeHGlobal 释放内存。StringToHGlobalAnsi 提供与 Marshal.PtrToStringAnsi 相反的功能。”

void ConvertToString(System::String^ str, std::string& text)
{
     char* p = (char*)(int)System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi(str);
     text = p;
     System::Runtime::InteropServices::Marshal::FreeHGlobal((System::IntPtr)p);
}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值