我在这里使用代码将参数传递给模板文件.
List<string> TopicList = new List<string>();
TopicList.Add("one");
TopicList.Add("two");
TopicList.Add("three");
TopicList.Add("four");
TopicList.Add("five");
PreTextTemplate1 t = new PreTextTemplate1();
t.Session = new Microsoft.VisualStudio.TextTemplating.TextTemplatingSession();
t.Session["TimesToRepeat"] = 5;
foreach (string s in TopicList)
{
t.Session["Name"] = s;
}
t.Initialize();
string resultText = t.TransformText();
Run Code Online (Sandbox Code Playgroud)
但每次,我得到的都是Topic列表中的最后一个值("5").
<#@ template language="C#" #>
<#@ parameter type="System.Int32" name="TimesToRepeat" #>
<#@ parameter type="System.String" name="Name" #>
<# for (int i = 0; i < TimesToRepeat; i++) { #>
Line <#= Name #>
<# } #>
Actual Output:Line five
Line five
Line …Run Code Online (Sandbox Code Playgroud) 我正在尝试将char*写入二进制文件.
这就是我现在拥有的.
void Write(char* fileName, char* pData)
{
ofstream binFile (fileName, ios::out | ios::binary);
if (binFile.open())
{
binFile.write((char*)&pData, sizeof(pData));
binFile.close();
}
}
void Read(char* fileName, char* pData)
{
ifstream binFile(fileName, ios::in | ios::binary);
if(binFile.open())
{
binFile.read(char*)&pData, sizeof(pData));
binFile.close
}
}
int main()
{
char* testData = "ABCdEFG"; // not real data
char* getTestData;
char* file = "C:\\testData.dat";
Write(file, testData);
Read(file, getTestData);
}
Run Code Online (Sandbox Code Playgroud)
测试数据的长度未知.可能并不总是一样的.
当我运行程序一次,并写和读.我可以找回测试数据.
但是当我停止程序并再次运行时,这次没有写入.只是阅读,我无法取回测试数据.
我真的不明白这里发生了什么.有人可以向我解释一下吗?