Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/45.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用for循环从.txt文件读取结构数组会使其循环两次 我是C++编程新手,我尝试使用Struts数组(如果我用你理解的方式说),我会用。程序确实从文本文件中读取变量,但它读取了2次,可能这不是一个大问题,因为变量没有改变,只是以防万一 struct menesine_temperatura { int diena[10]; int rytas[10]; int pietus[10]; int vakaras[10]; }; int main() { menesine_temperatura mt; int n; ifstream failas("duomenys.txt"); while(!failas.eof()) { failas >> n; cout << n << endl; for(int i = 0; i < n; i++) { failas >> mt.diena[i] >> mt.rytas[i] >> mt.pietus[i] >> mt.vakaras[i]; cout << mt.diena[i] << mt.rytas[i] << mt.pietus[i] << mt.vakaras[i] << endl; } } failas.close(); return 0; } struct menesine_temperaturea { int diena[10]; int rytas[10]; int pietus[10]; int vakaras[10]; }; int main() { 梅内辛温度; int n; ifstream failas(“duomeys.txt”); 而(!failas.eof()) { failas>>n; 迪埃纳山[i]>>雷塔斯山[i]>>皮埃图斯山[i]>>瓦卡拉山[i]; cout_C++_Arrays - Fatal编程技术网 >n; 迪埃纳山[i]>>雷塔斯山[i]>>皮埃图斯山[i]>>瓦卡拉山[i]; cout,c++,arrays,C++,Arrays" /> >n; 迪埃纳山[i]>>雷塔斯山[i]>>皮埃图斯山[i]>>瓦卡拉山[i]; cout,c++,arrays,C++,Arrays" />

使用for循环从.txt文件读取结构数组会使其循环两次 我是C++编程新手,我尝试使用Struts数组(如果我用你理解的方式说),我会用。程序确实从文本文件中读取变量,但它读取了2次,可能这不是一个大问题,因为变量没有改变,只是以防万一 struct menesine_temperatura { int diena[10]; int rytas[10]; int pietus[10]; int vakaras[10]; }; int main() { menesine_temperatura mt; int n; ifstream failas("duomenys.txt"); while(!failas.eof()) { failas >> n; cout << n << endl; for(int i = 0; i < n; i++) { failas >> mt.diena[i] >> mt.rytas[i] >> mt.pietus[i] >> mt.vakaras[i]; cout << mt.diena[i] << mt.rytas[i] << mt.pietus[i] << mt.vakaras[i] << endl; } } failas.close(); return 0; } struct menesine_temperaturea { int diena[10]; int rytas[10]; int pietus[10]; int vakaras[10]; }; int main() { 梅内辛温度; int n; ifstream failas(“duomeys.txt”); 而(!failas.eof()) { failas>>n; 迪埃纳山[i]>>雷塔斯山[i]>>皮埃图斯山[i]>>瓦卡拉山[i]; cout

使用for循环从.txt文件读取结构数组会使其循环两次 我是C++编程新手,我尝试使用Struts数组(如果我用你理解的方式说),我会用。程序确实从文本文件中读取变量,但它读取了2次,可能这不是一个大问题,因为变量没有改变,只是以防万一 struct menesine_temperatura { int diena[10]; int rytas[10]; int pietus[10]; int vakaras[10]; }; int main() { menesine_temperatura mt; int n; ifstream failas("duomenys.txt"); while(!failas.eof()) { failas >> n; cout << n << endl; for(int i = 0; i < n; i++) { failas >> mt.diena[i] >> mt.rytas[i] >> mt.pietus[i] >> mt.vakaras[i]; cout << mt.diena[i] << mt.rytas[i] << mt.pietus[i] << mt.vakaras[i] << endl; } } failas.close(); return 0; } struct menesine_temperaturea { int diena[10]; int rytas[10]; int pietus[10]; int vakaras[10]; }; int main() { 梅内辛温度; int n; ifstream failas(“duomeys.txt”); 而(!failas.eof()) { failas>>n; 迪埃纳山[i]>>雷塔斯山[i]>>皮埃图斯山[i]>>瓦卡拉山[i]; cout,c++,arrays,C++,Arrays,根据您拥有的代码,最后一组数字将被读取两次 下面是一个简单的例子来解释逻辑错误 int main() { int n; std::ifstream inf("data.txt"); while ( !inf.eof() ) { inf >> n; std::cout << n << std::endl; } } 在循环的第一次迭代中,10被读入n并打印10。 在循环的第二次迭代中,20被读入n并打印20

根据您拥有的代码,最后一组数字将被读取两次

下面是一个简单的例子来解释逻辑错误

int main()
{
   int n; 
   std::ifstream inf("data.txt");
   while ( !inf.eof() )
   {
      inf >> n;
      std::cout << n << std::endl;
   }
}
在循环的第一次迭代中,
10
被读入
n
并打印
10
。 在循环的第二次迭代中,
20
被读入
n
并打印
20

此时,
inf.eof()
仍然是
false
。因此,您第三次进入循环。此时,不会向
n
读取任何内容,但会打印
n
仍然
20
20
的值

逻辑错误是,仅仅因为
inf.eof()
false
,您就假定文件中还有一些数据可以读取

更好的方法是使用:

int main()
{
   int n; 
   std::ifstream inf("data.txt");
   while ( inf )
   {
      if ( inf >> n )
      {
         std::cout << n << std::endl;
      }
   }
}
intmain()
{
int n;
std::ifstream-inf(“data.txt”);
while(inf)
{
如果(inf>>n)
{

std::看不懂这个:读这个:一个小问题:你从哪里学会使用
eof()
?@LogicStuff我从pascal编程语言知道eof(),我们在学校学习pascal。而(inf.peek()!=eof)也应该可以:)
int main()
{
   int n; 
   std::ifstream inf("data.txt");
   while ( inf )
   {
      if ( inf >> n )
      {
         std::cout << n << std::endl;
      }
   }
}