我是 c++ 的新手,不知道为什么会这样......
第 105 行我收到此错误从 const char* 到 char* 的无效转换 [-fpermissive] 第 113 行我收到从 âconst char* 到 char* [-fpermissive]
的无效转换错误#include <cstdio>
#include <cstdarg>
#include <string>
using namespace std;
char acWordWrap[1024];
char acPrint[1024];
BasicConsole::BasicConsole(char* szName)
: ZFSubSystem(szName)
{
m_iMaxWidth = 50; //TEXT_MAX_LENGHT;
m_bLog = false;
}
BasicConsole::~BasicConsole()
{
for(unsigned int i =0;i<m_kText.size();i++)
{
delete[] m_kText[i];
}
m_kText.clear();
}
/** \brief Prints a single row to console.
\ingroup Basic
*/
void BasicConsole::PrintOneRow(const char* aText)
{
ZFAssert(aText, "NULL Pointer argument");
delete[] m_kText[m_kText.size()-1];
for(int i=m_kText.size()-1;i>0;i--)
{
if(m_kText[i-1]!=NULL)
{
m_kText[i]=m_kText[i-1];
}
}
m_kText[0]=new char[m_iMaxWidth+2];
strcpy(m_kText[0],aText);
}
/** \brief Prints a row and word wraps so it don't go beoynd edge of console.
\ingroup Basic
*/
void BasicConsole::PrintWordWrap(const char* aText)
{
ZFAssert(aText, "NULL Pointer argument");
string strEndLined = string(aText) + "\n";
if(m_bLog)
GetSystem().Log("console", strEndLined.c_str());
int iNumOfChars = strlen( aText );
while(iNumOfChars > m_iMaxWidth)
{
const char* szSpace = &aText[m_iMaxWidth];
int iWidht = m_iMaxWidth;
while(szSpace > aText && szSpace[0] != ' ') szSpace--;
if(szSpace == aText)
{
szSpace = &aText[m_iMaxWidth];
}
else
{
iWidht = szSpace - aText;
}
strncpy(acWordWrap, aText, iWidht);
acWordWrap[iWidht] = 0;
PrintOneRow(acWordWrap);
aText += iWidht;
iNumOfChars -= iWidht;
}
if(aText[0])
PrintOneRow(aText);
}
/** \brief Prints one row and handles splitting it up at line breaks.
\ingroup Basic
*/
void BasicConsole::Print(const char* aText)
{
ZFAssert(aText, "NULL Pointer argument");
const char* pszText = aText;
char* pszCr = strchr(pszText, 10);
while(pszCr)
{
strncpy(acPrint,pszText, pszCr - pszText);
acPrint[pszCr - pszText] = 0;
PrintWordWrap(acPrint);
//cout << " - '" << acPrint << "'"<< endl;
pszText = pszCr + 1;
pszCr = strchr(pszText, 10);
}
if(pszText[0])
{
//cout << "- '" << pszText << "'"<< endl;
PrintWordWrap(pszText);
}
}
/** \brief The function used to print to the console.
\ingroup Basic
*/
void BasicConsole::Printf(const char *fmt, ...)
{
ZFAssert(fmt, "NULL Pointer argument");
// Make sure we got something to work with.
if (fmt == NULL)
return;
va_list ap; // Pointer To List Of Arguments
va_start(ap, fmt); // Parses The String For Variables
vsprintf(g_szFormatText, fmt, ap); // And Convert Symbols
va_end(ap); //
// Now call our print function.
Print(g_szFormatText);
}
bool BasicConsole::StartUp() { return true; }
bool BasicConsole::ShutDown() { return true; }
bool BasicConsole::IsValid() { return true; };
void BasicConsole::RunCommand(int cmdid, const ConCommandLine* kCommand) { }
最佳答案
这一行看起来是你的问题:
char* pszCr = strchr(pszText, 10);
您需要添加一个 const自pszText开始是 const char * .您正在“ promise ”保持 pszText 的常量性你正在使用 strchr 的版本破坏接受并返回 char * .
关于c++ - 需要帮助调试从 const char* 到 char* [-fpermissive] 的无效转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8190988/
我的目标是转换表单输入,例如“100兆字节”或“1GB”,并将其转换为我可以存储在数据库中的文件大小(以千字节为单位)。目前,我有这个:defquota_convert@regex=/([0-9]+)(.*)s/@sizes=%w{kilobytemegabytegigabyte}m=self.quota.match(@regex)if@sizes.include?m[2]eval("self.quota=#{m[1]}.#{m[2]}")endend这有效,但前提是输入是倍数(“gigabytes”,而不是“gigabyte”)并且由于使用了eval看起来疯狂不安全。所以,功能正常,
当我使用Bundler时,是否需要在我的Gemfile中将其列为依赖项?毕竟,我的代码中有些地方需要它。例如,当我进行Bundler设置时:require"bundler/setup" 最佳答案 没有。您可以尝试,但首先您必须用鞋带将自己抬离地面。 关于ruby-我需要将Bundler本身添加到Gemfile中吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4758609/
我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h
我需要读入一个包含数字列表的文件。此代码读取文件并将其放入二维数组中。现在我需要获取数组中所有数字的平均值,但我需要将数组的内容更改为int。有什么想法可以将to_i方法放在哪里吗?ClassTerraindefinitializefile_name@input=IO.readlines(file_name)#readinfile@size=@input[0].to_i@land=[@size]x=1whilex 最佳答案 只需将数组映射为整数:@land边注如果你想得到一条线的平均值,你可以这样做:values=@input[x]
这道题是thisquestion的逆题.给定一个散列,每个键都有一个数组,例如{[:a,:b,:c]=>1,[:a,:b,:d]=>2,[:a,:e]=>3,[:f]=>4,}将其转换为嵌套哈希的最佳方法是什么{:a=>{:b=>{:c=>1,:d=>2},:e=>3,},:f=>4,} 最佳答案 这是一个迭代的解决方案,递归的解决方案留给读者作为练习:defconvert(h={})ret={}h.eachdo|k,v|node=retk[0..-2].each{|x|node[x]||={};node=node[x]}node[
我的瘦服务器配置了nginx,我的ROR应用程序正在它们上运行。在我发布代码更新时运行thinrestart会给我的应用程序带来一些停机时间。我试图弄清楚如何优雅地重启正在运行的Thin实例,但找不到好的解决方案。有没有人能做到这一点? 最佳答案 #Restartjustthethinserverdescribedbythatconfigsudothin-C/etc/thin/mysite.ymlrestartNginx将继续运行并代理请求。如果您将Nginx设置为使用多个上游服务器,例如server{listen80;server
我注意到像bundler这样的项目在每个specfile中执行requirespec_helper我还注意到rspec使用选项--require,它允许您在引导rspec时要求一个文件。您还可以将其添加到.rspec文件中,因此只要您运行不带参数的rspec就会添加它。使用上述方法有什么缺点可以解释为什么像bundler这样的项目选择在每个规范文件中都需要spec_helper吗? 最佳答案 我不在Bundler上工作,所以我不能直接谈论他们的做法。并非所有项目都checkin.rspec文件。原因是这个文件,通常按照当前的惯例,只
我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121
我正在阅读SandiMetz的POODR,并且遇到了一个我不太了解的编码原则。这是代码:classBicycleattr_reader:size,:chain,:tire_sizedefinitialize(args={})@size=args[:size]||1@chain=args[:chain]||2@tire_size=args[:tire_size]||3post_initialize(args)endendclassMountainBike此代码将为其各自的属性输出1,2,3,4,5。我不明白的是查找方法。当一辆山地自行车被实例化时,因为它没有自己的initialize方法
我有两个Rails模型,即Invoice和Invoice_details。一个Invoice_details属于Invoice,一个Invoice有多个Invoice_details。我无法使用accepts_nested_attributes_forinInvoice通过Invoice模型保存Invoice_details。我收到以下错误:(0.2ms)BEGIN(0.2ms)ROLLBACKCompleted422UnprocessableEntityin25ms(ActiveRecord:4.0ms)ActiveRecord::RecordInvalid(Validationfa