为什么这个输入会是五个*然后还有个6

img


为什么这个输入会是五个然后还有个6 而不是12345
c++入门 求解答 谢谢!

因为你输出i没在循环里面
也就是说你的for循环没用括号只会执行下面的一行
你有一个for循环会循环输出五次*
然后最后再输出一次i,

code里写得很清楚,先输出5个*,接着输出i的值,最后i=6

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7491816
  • 你也可以参考下这篇文章:源码分享,采用线程池,实现高性能跨平台C++多线程并行库,附测试!
  • 除此之外, 这篇博客: 竟然如此简单!C++实现完全随机加密、解析库,并附上完整代码分析中的 6.解析文件 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  •   这部分内容与加密文件相似,首先解析加密头,然后对加密数据进行解析后保存即可。

    解析源码

     //解密文件
    bool DataOperation_::DecryptionFile(CString Filename,bool bCover)
    {
    	if (Filename.IsEmpty())
    		return false;
    	CFile file1,file2;
    	if (!file1.Open(Filename,CFile::modeRead))
    		return false;
    	ULONG64 FileLen = file1.GetLength();
    	if (512 >= FileLen)
    		return false;
    
    	CString Filename2(Filename.Mid(0,Filename.ReverseFind(_T('.'))));
    	Filename2.AppendFormat(_T("_Temp%s"),Filename.Mid(Filename.ReverseFind(_T('.')),
    		Filename.GetLength() - Filename.ReverseFind(_T('.'))));
    
    	if (!file2.Open(Filename2,CFile::modeCreate | CFile::modeWrite))
    		return false;
    	char StrData[2048 + 100] = {0};
    	int DataLen = 0;
    	file1.Read(StrData,512);
    	//解密数据头
    	int DecryptionLen = 0;
    	int HeadLen = 0;
    	if (DecryptionLen = DecryptHeadLen(StrData, HeadLen))
    	{
    		file1.Seek(HeadLen, CFile::begin);
    		FileLen -= HeadLen;
    	}
    	else
    	{
    		bCover = false; 
    		goto Exit;
    	}
    	
    	while (0 < FileLen)
    	{
    		if (DecryptionLen <= FileLen)
    		{
    			DataLen = DecryptionLen;
    			file1.Read(StrData,DataLen);
    			char *WriteFile = DecryptionData(StrData,DataLen);
    			memset(StrData,0,strlen(StrData));
    			memcpy(StrData,WriteFile,DataLen);
    			file2.Write(StrData,DataLen);
    			FileLen -= DecryptionLen;
    		}
    		else
    		{
    			DataLen = FileLen;
    			file1.Read(StrData,FileLen);
    			char *WriteFile = DecryptionData(StrData,DataLen);
    			memset(StrData,0,strlen(StrData));
    			memcpy(StrData,WriteFile,DataLen);
    			file2.Write(StrData,DataLen);
    			FileLen -= FileLen;
    			break;
    		}
    	}
    
    Exit:
    	file1.Close();
    	file2.Close();
    	if (bCover)
    	{
    		USES_CONVERSION;
    		//覆盖本地文件
    		int nResult = remove(T2A(Filename));
    		nResult = rename(T2A(Filename2),T2A(Filename));
    	}
    
    	return true;
    }